문제
다음 SQL의 실행 결과로 나타나는 총 행 수는?
SQLSELECT DEPTNO, JOB, COUNT(*) FROM EMP WHERE DEPTNO IN (10, 20) GROUP BY ROLLUP(DEPTNO, JOB);
(단, DEPTNO 10에는 JOB이 3종류, DEPTNO 20에는 JOB이 2종류 존재)
① 7행
② 8행
③ 9행
④ 10행
정답
2번
해설
ROLLUP(DEPTNO, JOB)는 (DEPTNO,JOB), (DEPTNO), () 3가지 그룹핑을 생성합니다. 실제 데이터 기준으로 (DEPTNO,JOB): 10부서 3개 + 20부서 2개 = 5행, (DEPTNO): 10부서, 20부서 = 2행, (): 전체 합계 = 1행. 총 8행이 생성됩니다. ① 7행은 소계 행을 빠뜨린 경우입니다. ③ 9행은 과다 계산된 경우입니다. ④ 10행은 CUBE로 계산한 경우입니다.