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 子句中,但不能按它分组或聚合它。