聚合函数调用可能不是嵌套的ERROR

时间:2013-10-22 14:24:47

标签: sql tsql postgresql netezza

我试图在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

1 个答案:

答案 0 :(得分:1)

您的查询看起来不错,应该可以使用。也许您使用的版本有一些限制。试试这个变化:

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 ;