안녕하세요,
쿼리 수정중에 궁금한 점이 생겨서 질문 여쭙습니다.
아래와 같은 형태의 쿼리가 어떤 서버에서는 실행이 되고, 어떤 서버에서는 안되서 이유를 알아보고 있는데요.
with TBL as ( select '1' as col, 'dummy' as dummy from dual union all select '2' as col, 'dummy' as dummy from dual ) select count(*) from (select * from TBL group by col )
테이블의 여러 컬럼 중에 한 컬럼만을 group by 해서 count 하는 쿼리입니다.
에러는 'ORA-00979: GROUP BY식이 아닙니다' 라고 에러가 뜨는데요.
아직 DB에 대해 깊이 알지는 못하지만,
어찌보면 group by 하면서 * 로 SELECT 한 결과를 count 하는데, 에러가 나는게 당연한 것이 아닌가 싶기도 합니다만..
어찌됐던 실행되는 환경이 있으니 이유가 궁금합니다.
직접 조사해 볼 수 있는 범위가 넓지 않아서, 일단 버젼만 한번 확인해보니
실행이 되는쪽은 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
실행이 안되는 쪽은 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
네요, 그래서 버젼간의 차이는 아닌가? 혹시 다른것(설정 등)이 있는것일까 하고 질문 드리게 되었습니다.
첫 글을 질문글로 남기게 되었습니다만. 잘 부탁드립니다