我收到错误ORA-00979。指出错误

时间:2017-06-13 08:08:36

标签: oracle top-n

SELECT department_name, cou  FROM 
(
    SELECT department_name, count(student_id) AS cou
    FROM department d NATURAL JOIN student s
    GROUP BY department_name
)
GROUP BY department_name HAVING cou=max(cou);

2 个答案:

答案 0 :(得分:0)

首先关闭 - 避免自然加入。这很危险。谷歌的原因。 您收到的消息是因为您有OUTER选择的GROUP BY,但您在select子句中没有聚合函数。

看起来你可能完全失去外部选择并将HAVING子句放在内部选择上。

答案 1 :(得分:0)

SELECT * FROM (
SELECT department_name, count(student_id) AS cou
  FROM department d 
  JOIN student s USING (student_id)
GROUP BY department_name
ORDER BY count(student_id) DESC )
WHERE rownum = 1