문제
다음 중 다른 SQL들과 결과 집합이 다른 것은?
① GROUP BY ROLLUP(A, B) ② GROUP BY GROUPING SETS((A, B), (A), ()) ③ GROUP BY A, B UNION ALL GROUP BY A UNION ALL GROUP BY () ④ GROUP BY GROUPING SETS((A, B), (A))
정답
4번
해설
정답: 4. ROLLUP(A, B)는 (A, B), (A), () 그룹을 생성하지만 4번은 전체 합계 그룹 ()이 없다.
오답 풀이
- 1번: ROLLUP(A, B)의 기본 결과이다.
- 2번: ROLLUP(A, B)와 같은 그룹 집합이다.
- 3번: 동일한 그룹 집합을 UNION ALL 형태로 표현한 것이다.
- 4번: 전체 합계 그룹이 빠져 결과가 다르다.
보충 개념 ROLLUP(A, B)는 계층적 소계를 생성한다. 이를 GROUPING SETS로 표현하면 GROUPING SETS((A, B), (A), ())가 된다.