ORA-00979: not a GROUP BY expression
Oracle의미
SELECT 목록에 집계 함수(SUM, COUNT 등)와 함께 집계되지 않은 컬럼을 사용했지만 해당 컬럼이 GROUP BY 절에 추가되지 않았다. Oracle은 그 컬럼을 어떻게 그룹화할지 알 수 없다.
원인
SELECT에는 있지만 GROUP BY에는 없는 컬럼. 집계 함수 밖의 표현식이 GROUP BY 목록에서 누락됨. HAVING 또는 select 표현식의 불일치.
해결 방법
집계되지 않은 모든 컬럼을 GROUP BY 목록에 추가한다: SELECT department, COUNT(*) FROM employee GROUP BY department; 또는 해당 컬럼도 집계 함수(MAX, MIN)로 감싸거나, 분석 함수(OVER())로 그룹화를 재설계한다.
같은 데이터베이스의 다른 항목
- ORA-01400cannot insert NULL into (column)
- ORA-02291integrity constraint violated - parent key not found
- ORA-02292integrity constraint violated - child record found
- ORA-00918column ambiguously defined
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded
- ORA-01427single-row subquery returns more than one row