2

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

这是我到目前为止所拥有的:

SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT_ID
HAVING COUNT (STUDENT_ID) >4;

我不断收到此消息:

ERROR at line 1: 
ORA-00979: not a GROUP BY expression

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

SELECT STUDENT.EMPLOYER, COUNT (STUDENT.STUDENT_ID)
FROM STUDENT
GROUP BY STUDENT.STUDENT_ID
HAVING COUNT (STUDENT.STUDENT_ID) >4;

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

4

1 回答 1

5

尝试:

SELECT EMPLOYER, COUNT (STUDENT_ID)
FROM STUDENT
GROUP BY EMPLOYER
HAVING COUNT (STUDENT_ID) >4;

- 这将返回一个包含 4 名以上学生的所有雇主的列表。

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

于 2013-04-07T17:04:36.650 回答