oracle报错ora00979,ORA-00979: not a GROUP BY expression报错处理

环境:Oracle Database 11gR2(11.2.0.2) on Linux

故障现象: 执行Group By语句报错ORA-00979。

具体的SQL如下:

SQL> select  a.d1,a.EXIT_type,round(a.cnt1/b.cnt2*100,2) from

2  (select substr(LOGIN_DATE,1,8) d1,EXIT_type,count(*) cnt1 from xxx_connect_log group by substr(LOGIN_DATE,1,8),EXIT_type) a,

3  (select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b

4  where A.d1=B.d2 order by a.d1,a.EXIT_type;

(select substr(LOGIN_DATE,1,8) d2 ,count(*) cnt2 from xxx_connect_log group by substr(LOGIN_DATE,1,8) ) b

*

ERROR at line 3:

ORA-00979: not a GROUP BY expression

这条语句在其他大区的DB上执行均OK,在体验服DB上执行报错。从语法上看,确实是完全没问题的。

碰到这种ORA-报错的情况,我们可以通过设置ErrorStack对错误堆栈进行跟踪,将错误的后台信息比较详尽的转储到跟踪文件,供分析研究。

ErrorStack的四个级别及说明:

0 Error stack only

1 Error sta

你可能感兴趣的:(oracle报错ora00979,ORA-00979: not a GROUP BY expression报错处理)