SELECT p.pdept.dno,
MAX(SUM(p.budget)) AS max
FROM Proj111 p
GROUP BY p.pdept.dno
尽管我在select语句中包含了所有必要的属性以按子句进行分组,但会产生上述问题吗?怎么解决呢?
最佳答案
您不能像这样嵌套聚合函数。如果要从每个组中获取最大金额,则可以尝试以下操作:
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)
我将其命名为
cte
的通用表表达式可以找到每个部门的预算。然后,该查询通过再次查询cte
以获取最大预算,从而将该结果限制为预算最大的部门。关于sql - 不是单组分组功能(00937. 00000),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39523434/