[轉]關於ORA-00979 不是 GROUP BY 表達式錯誤的解釋


轉自:https://www.cnblogs.com/vigarbuaa/archive/2012/06/25/2561225.html

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,job,avg(sal) from emp

Group by deptno,job;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM