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;