单列分组不起作用

Sac*_*hin 0 sql oracle

当我使用以下查询时,它工作:

select d.id, 
       d.name, 
       count(e.id) as numberofemployees
  from department d, 
       employee1 e
 where d.id=e.deptid
group by d.id, 
         d.name
order by d.id; 
Run Code Online (Sandbox Code Playgroud)

但是,当我使用以下查询时,它给了我错误:

select d.id, 
       d.name, 
       count(e.id) as numberofemployees
  from department d, 
       employee1 e
 where d.id=e.deptid
group by d.id 
order by d.id; 
Run Code Online (Sandbox Code Playgroud)

错误如下:

选择d.id,d.name,count(e.id)作为numberofemployees

第1行的错误:ORA-00979:不是GROUP BY表达式

我不明白问题是什么.我认为对单列进行分组应该没问题.任何帮助将不胜感激.

Ken*_*ite 6

在大多数DBMS实现方式中,GROUP BY必须包含未出现在聚合函数(每列AVG(),SUM(),COUNT()等等).如果有两列(ID和Name)不在聚合函数中,则必须在GROUP BY子句中列出它们.