0

このクエリを postgresql で実行しようとしていますが、「エラー: 集計関数呼び出しがネストされていない可能性があります」というエラーが表示されます。これに対する問題や解決策がわかりません。

これが私のクエリです:

select a.KEY_NBR, a.MAIN_ID
        , 
            case
                when a.KEY_NBR = a.MAIN_ID
                    then 'Don''t Use'
                when a.count = MAX(a.count) over(partition by a.KEY_NBR)
                    then 'Good'
                else 'Bad'
            end [flag]
    from MYTABLE a
4

1 に答える 1

2

あなたのクエリは問題なく動作するはずです。おそらく、使用するバージョンにはいくつかの制限があります。このバリエーションを試してください:

WITH a AS
  ( SELECT key_nbr, main_id, count,
           MAX(count) OVER (PARTITION BY key_nbr) AS max_count
    FROM mytable
  ) 
SELECT a.key_nbr, a.main_id,
       CASE WHEN a.key_nbr = a.main_id
                THEN 'Don''t Use'
            WHEN a.count = max_count 
                THEN 'Good'
            ELSE 'Bad'
       END AS flag
FROM a ;
于 2013-10-23T07:21:00.380 に答える