码迷,mamicode.com
首页 > 其他好文 > 详细

关于ORA-00979 不是 GROUP BY 表达式错误的解释

时间:2014-09-25 20:46:17      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:使用   ar   数据   sp   c   r   bs   sql   as   

ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的。 

我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外)


但一些朋友经常爱把select 列表项的中列忘了写在group by中。于是就出现了以上的错误ORA-00979 不是 GROUP BY 表达式。


Oracle的中文错误提示信息翻译得非常不到位,面对着不是 GROUP BY 表达式很多朋友摸不着头脑,不知道oracle在说什么。


例如下面的例子就会出现这个错误:


select deptno,job,avg(sal) 
from emp 
group by deptno;


select deptno,job,avg(sal)


*


ERROR 位于第 1 行:


ORA-00979: 不是 GROUP BY 表达式


这里就是因为在select 列表像中出现了像deptno和job,而在group by中并没有出现的缘故。


以上的错误纠正为:

Select deptno,job,avg(sal) from emp

Group by deptno,job;


关于ORA-00979 不是 GROUP BY 表达式错误的解释

标签:使用   ar   数据   sp   c   r   bs   sql   as   

原文地址:http://my.oschina.net/u/1040430/blog/318626

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!