zoukankan      html  css  js  c++  java
  • oracle的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;

     

  • 相关阅读:
    FR #3题解
    L3-005. 垃圾箱分布
    L2-004. 这是二叉搜索树吗?
    L2-002. 链表去重
    L1-009. N个数求和
    L3-003. 社交集群
    L3-004. 肿瘤诊断
    L2-001. 紧急救援
    L3-002. 堆栈
    L2-007. 家庭房产
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7007410.html
Copyright © 2011-2022 走看看