Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 聚合函数调用不能嵌套错误_Sql_Tsql_Postgresql_Netezza - Fatal编程技术网

Sql 聚合函数调用不能嵌套错误

Sql 聚合函数调用不能嵌套错误,sql,tsql,postgresql,netezza,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.c

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

您的查询看起来不错,应该可以运行。也许您使用的版本有一些限制。尝试以下变体:

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 ;

MAX
是一个聚合函数,您可能希望通过
SELECT
语句返回
MAX(a.count)
的结果。您使用的是什么版本的PostgreSQL?在9.2中测试了类似的查询-它工作正常。实际上我正在使用Workbench:Aginity Workbench for Netezza 4.0.998.20231,它使用postgresqlShow输出进行
select version()
查询。这个问题似乎更适合。您没有名为
count
的列吗?您的代码表明您确实有。