获取ORA-00979:oracle中不是GROUP BY表达式错误

时间:2017-09-25 18:47:40

标签: sql oracle

我在使用group by和having的查询中出现“ORA-00979:不是GROUP BY表达式”错误。谁能告诉我问题出在哪里? 这是查询。

select DEPTNUM, INSTNAME, DEPTNAME from department
NATURAL join academic
group by DEPTNUM
having count(deptnum) > 10

3 个答案:

答案 0 :(得分:0)

在GROUP BY中添加INSTNAME,DEPTNAME,或者为INSTNAME使用聚合函数(例如MIN,MAX),DEPTNAME

答案 1 :(得分:0)

如果你需要和ggreted结果在一个列上你shoudl没有这个列在组中 并且您的错误与您在group by子句中没有列的事实有关taht未在select

中汇总

所以试试

select INSTNAME, DEPTNAME from department
NATURAL join academic
group by INSTNAME, DEPTNAME
having count(deptnum) > 10

答案 2 :(得分:0)

Eschew natural join。这几乎是令人厌恶的,因为它使用具有相同名称的列而不是声明的外键关系。

您真正的问题是group byselect。我建议:

select DEPTNUM, INSTNAME, DEPTNAME
from department d join
     academic a
     using (deptnum)
group by DEPTNUM, INSTNAME, DEPTNAME
having count(deptnum) > 10;

我也有资格instnamedeptname,但不清楚它们来自哪个表格。