ни одной групповой функции (00937. Ноль ноль ноль ноль ноль)
SELECT p.pdept.dno,
MAX(SUM(p.budget)) AS max
FROM Proj111 p
GROUP BY p.pdept.dno
Несмотря на то, что я включил все необходимые атрибуты в инструкции select, чтобы сгруппировать предложение, оно будет генерировать вышеуказанную проблему? Как ее решить?
1 ответ:
Вы не можете вложить агрегатные функции подобным образом. Если вы хотите получить максимальную сумму от каждой группы, то вы можете попробовать следующее:
Общее табличное выражение, которое я назвал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
для максимального бюджета.