[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 함수를 사용할 수 ..
[ORACLE] 부서별 컬럼을 만들고, 직원 수를 나타내기(GROUP BY or 조건문 활용)
문제 다음과 같은 결과를 생성하는 SQL 작성 10번부서 20번부서 30번부서 3 5 6 정답1 SELECT SUM(DECODE(DEPTNO, 10, COUNT(DEPTNO), 0)) AS "10번부서", SUM(DECODE(DEPTNO, 20, COUNT(DEPTNO), 0)) AS "20번부서", SUM(DECODE(DEPTNO, 30, COUNT(DEPTNO), 0)) AS "30번부서" FROM EMP GROUP BY DEPTNO; 정답2 SELECT COUNT(CASE WHEN DEPTNO = 10 THEN 1 END) AS "10번부서", COUNT(CASE WHEN DEPTNO = 20 THEN 1 END) AS "20번부서", COUNT(CASE WHEN DEPTNO = 30 THEN 1 ..