Sql 没有单个组功能(00937.00000)

Sql 没有单个组功能(00937.00000),sql,oracle,Sql,Oracle,虽然我已经在select语句中包含了所有必要的属性,但GROUPBY子句会生成上述问题吗?如何解决它?您不能像那样嵌套聚合函数。如果要从每个组中获得最大总和,则可以尝试以下方法: SELECT p.pdept.dno, MAX(SUM(p.budget)) AS max FROM Proj111 p GROUP BY p.pdept.dno 我命名为cte的公共表表达式查找每个部门的预算。然后,通过再次查询最大预算的cte,该查询将此结果限制到具有最大预算的部门。然后它说cte表

虽然我已经在select语句中包含了所有必要的属性,但GROUPBY子句会生成上述问题吗?如何解决它?

您不能像那样嵌套聚合函数。如果要从每个组中获得最大总和,则可以尝试以下方法:

SELECT p.pdept.dno,
       MAX(SUM(p.budget)) AS max
FROM Proj111 p
GROUP BY p.pdept.dno

我命名为
cte
的公共表表达式查找每个部门的预算。然后,通过再次查询最大预算的
cte
,该查询将此结果限制到具有最大预算的部门。

然后它说cte表不存在。您使用了我给您的确切查询吗?@Tim Biegeleisen您的代码有一点错误,额外的分号
选择之前
@Surename我补充说,在OP抱怨我的答案不起作用之后。在他的安排中还有其他的事情。
WITH cte AS (
    SELECT p.pdept.dno AS dept,
           SUM(p.budget) AS budget
    FROM Proj111 p
    GROUP BY p.pdept.dno
)

SELECT t.dept,
       t.budget
FROM cte t
WHERE t.budget = (SELECT MAX(budget) FROM cte)