본문 바로가기

데이터베이스/ORACLE

[ORACLE] 'GROUP BY 구 없이 그룹 함수가 내포되었습니다' 에러

에러나는 상황

SELECT SUM(DECODE(DEPTNO, 10, COUNT(JOB), 0)) AS "10번부서",
       SUM(DECODE(DEPTNO, 20, COUNT(JOB), 0)) AS "20번부서",
       SUM(DECODE(DEPTNO, 30, COUNT(JOB), 0)) AS "30번부서"
FROM EMP;

 

원인

- COUNT 함수는 그룹행 함수다. 여러 행이 한번에 들어가야하는데, DEPTNO가 10인 행의 데이터가 각각 인자로 들어가는 상황이다.

- 여기서 GROUP BY가 필요한 이유는, DEPTNO가 10, 20, 30인 데이터를 각각 하나로 모우는 임시 테이블을 만들기 위해서다(뇌피셜)

- 만들어진 임시 테이블에서는 전체 행이 각각 10, 20, 30일테니까 COUNT 함수를 사용할 수 있는 것 같다.