ORA-00979: 不是 GROUP BY 表达式

Los*_*ess 2 sql group-by count

我正在尝试展示学生工作的所有不同公司。但是,只应显示雇用四名以上学生的公司。

这是我到目前为止:

SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT_ID
HAVING COUNT (STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)

我不断收到此消息:

ERROR at line 1: 
ORA-00979: not a GROUP BY expression
Run Code Online (Sandbox Code Playgroud)

我不明白。我之前也试过这个:

SELECT STUDENT.EMPLOYER, COUNT (STUDENT.STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT.STUDENT_ID
HAVING COUNT (STUDENT.STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何效果。任何帮助表示赞赏。如果有帮助,我在 SQL*Plus 上。

小智 5

尝试:

SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY EMPLOYER
HAVING COUNT (STUDENT_ID) >4;
Run Code Online (Sandbox Code Playgroud)

- 这将返回所有拥有超过 4 名学生的雇主的列表。

分组或包含聚合字段时,您的 select 语句应包含聚合或包含在group by子句中的字段- 在现有选择中,您将包含EMPLOYER在您的 select 子句中,但不能按它分组或聚合它。