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

ORA-00979 不是 GROUP BY 表達式」這個錯誤,和我前面介紹的另一個錯誤ORA-00937同樣使不少初學oracle的人愛犯的。 sql

我在介紹使用聚合函數中用group by來分組數據時特別說明了select 列表項中不存在的列能夠出如今group by的列表項中,但反過來就不行了,在select列表項中出現的列必須所有出如今group by後面(聚合函數除外)oracle


但一些朋友常常愛把select 列表項的中列忘了寫在group by中。因而就出現了以上的錯誤ORA-00979 不是 GROUP BY 表達式。函數


Oracle的中文錯誤提示信息翻譯得很是不到位,面對着不是 GROUP BY 表達式不少朋友摸不着頭腦,不知道oracle在說什麼。翻譯


例以下面的例子就會出現這個錯誤:code


select deptno,job,avg(sal) 
from emp 
group by deptno;


select deptno,job,avg(sal)class


*select


ERROR 位於第 1 行:數據


ORA-00979: 不是 GROUP BY 表達式co


這裏就是由於在select 列表像中出現了像deptno和job,而在group by中並無出現的緣故。錯誤


以上的錯誤糾正爲:

Select deptno,job,avg(sal) from emp

Group by deptno,job;
相關文章
相關標籤/搜索