我在使用group by和having的查询中出现“ORA-00979:不是GROUP BY表达式”错误。谁能告诉我问题出在哪里? 这是查询。
select DEPTNUM, INSTNAME, DEPTNAME from department
NATURAL join academic
group by DEPTNUM
having count(deptnum) > 10
答案 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 by
和select
。我建议:
select DEPTNUM, INSTNAME, DEPTNAME
from department d join
academic a
using (deptnum)
group by DEPTNUM, INSTNAME, DEPTNAME
having count(deptnum) > 10;
我也有资格instname
和deptname
,但不清楚它们来自哪个表格。