ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另一个错误ORA-00937同样使不少初学oracle的人爱犯的。 sql
我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列能够出如今group by的列表项中,但反过来就不行了,在select列表项中出现的列必须所有出如今group by后面(聚合函数除外)oracle
但一些朋友常常爱把select 列表项的中列忘了写在group by中。因而就出现了以上的错误ORA-00979 不是 GROUP BY 表达式。函数
Oracle的中文错误提示信息翻译得很是不到位,面对着不是 GROUP BY 表达式不少朋友摸不着头脑,不知道oracle在说什么。翻译
例以下面的例子就会出现这个错误:code
select deptno,job,avg(sal) from emp group by deptno;
select deptno,job,avg(sal)class
*select
ERROR 位于第 1 行:数据
ORA-00979: 不是 GROUP BY 表达式co
这里就是由于在select 列表像中出现了像deptno和job,而在group by中并无出现的缘故。错误
以上的错误纠正为:
Select deptno,job,avg(sal) from emp Group by deptno,job;