【问题标题】:ORA-00979: not a GROUP BY expression [duplicate]ORA-00979: 不是 GROUP BY 表达式 [重复]
【发布时间】:2013-03-29 17:04:12
【问题描述】:

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

这是我目前所拥有的:

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。

【问题讨论】:

    标签: sql count group-by


    【解决方案1】:

    试试:

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

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

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

    【讨论】:

    • 谢谢您,先生!以后我会尽量记住这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 2011-06-29
    • 2011-06-04
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多