繁体   English   中英

如何修复'ORA-00978:没有GROUP BY的嵌套组功能'

[英]How to fix 'ORA-00978: nested group function without GROUP BY'

好吧,我知道小组如何工作,但我不断得到这个消息,我不知道我做错了什么。

我应该做的是:给出总统人数最多的党的总统的姓名和人数。

select p1.party, count(p1.pres_name)
from president p1
group by p1.party, p1.pres_name
having 
   count(p1.pres_name) =
(select max(count(p2.pres_name))from president p2 where p1.part = p2.party)

使用窗口功能:

select party, num_presidents
from (select p.party, count(*) as num_presidents,
             rank() over (order by count(*) desc) as seqnum
      from president p
      group by p.party,
     ) p
where seqnum = 1;

为什么在聚合函数和组中同时使用列名? 尝试这个:

SELECT PARTY,CNT FROM(
SELECT PARTY,COUNT(PRES_NAME) AS CNT
FROM PRESIDENT 
GROUP BY PARTY
ORDER BY 2 DESC
)
ROWNUM = 1;

这将在没有子查询的情况下完成

select p1.party, count(p1.pres_name) cnt
from president p1
group by p1.party
order by count(p1.pres_name) desc
fetch first 1 row only

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM