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/

10-11 05:02