Sql 聚合函数调用不能嵌套错误
我试图在postgresql中运行此查询,但出现以下错误:“错误:聚合函数调用可能未嵌套”。我不知道问题是什么,也不知道解决办法是什么 我的问题是: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
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
的列吗?您的代码表明您确实有。