1. 程式人生 > >oracle:ORA-00979 不是 GROUP BY 表示式”

oracle:ORA-00979 不是 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;
--------------------- 
作者:Derekwq 
來源:CSDN 
原文:https://blog.csdn.net/dreamderekwq/article/details/47253577 
版權宣告:本文為博主原創文章,轉載請附上博文連結!