Sql 没有单个组功能(00937.00000)
虽然我已经在select语句中包含了所有必要的属性,但GROUPBY子句会生成上述问题吗?如何解决它?您不能像那样嵌套聚合函数。如果要从每个组中获得最大总和,则可以尝试以下方法: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 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)