您当前的位置: 首页 >  oracle

qq_34412985

暂无认证

  • 0浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Oracle“ORA-00979:不是GROUP BY 表达式”解决方式

qq_34412985 发布时间:2020-01-06 19:37:09 ,浏览量:0

原来oracle比其他数据库如mysql的group by语法要求严。之前学习时,一直都是使用MySQL的,使用group by 很随意,然后就这样随意到了oracle上,就报错了…..真是醉了啊。。。

注:在select中出现的列必须全部出现在group by的后面 摘录: 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在说什么。

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

SQL> select deptno,job,avg(sal)

2 from emp

3 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;

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0413s