문제
다음 SQL의 실행 결과로 가장 적절한 것은?
SQLCREATE TABLE TAB1 (COL1 VARCHAR2(10), COL2 NUMBER); INSERT INTO TAB1 VALUES('A',100); INSERT INTO TAB1 VALUES('B',200); INSERT INTO TAB1 VALUES('C',300); INSERT INTO TAB1 VALUES('C',400); SELECT COUNT(*) FROM ( SELECT COL1, SUM(COL2) FROM TAB1 GROUP BY ROLLUP(COL1), COL1 );
① 3 ② 4 ③ 6 ④ 7
정답
3번
해설
정답: 3. GROUP BY ROLLUP(COL1), COL1은 COL1별 그룹이 중복 생성되어 A, B, C 그룹이 각각 두 번 나타나므로 총 6건이다.
오답 풀이
- 1번: 단순 GROUP BY COL1의 결과 건수이다.
- 2번: 원본 행 수와 혼동한 값이다.
- 3번: 중복된 COL1 그룹 기준 결과로 적절하다.
- 4번: 일반적인 ROLLUP(COL1)의 그룹 수와 혼동한 값이다.
보충 개념 ROLLUP은 소계와 총계를 생성한다. GROUP BY 항목이 중복되거나 결합될 경우 논리적으로 동일한 그룹 결과가 여러 번 생성될 수 있다.