加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 13:43:13 所属栏目:百科 来源:网络整理
导读:ORA-00979?不是 ?GROUP BY?表达式 ”这个错误,和我前面介绍的另外一个错误 ORA-00937 一样使很多初学 oracle的人爱犯的。 我在介绍使用聚合函数中用 group by 来分组数据时特别说明了 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)
from emp
group by deptno;

  

ERROR?位于第?1?行:

ORA-00979:?不是?GROUP BY?表达式

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

以上的错误纠正为:

Select deptno,avg(sal) from emp

Group by deptno,job;

?

?

另外的一种解决方法,字段尽量少带,

select "COUNT"("ID") from (SELECT  UNIONID,"ID" FROM WX_ORDER WHERE PAY_STATUS=0 and ORDER_STATUS=0 and CREATE_TIME BETWEEN 1539705600 AND  1539791999) GROUP BY UNIONID  ;
            

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读