다음 ㉠과 ㉡의 결과 행 수를 순서대로 나열한 것은?[배송실적]지역월건… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 3회
다음 ㉠과 ㉡의 결과 행 수를 순서대로 나열한 것은?[배송실적]
| 지역 | 월 | 건수 |
|---|---|---|
| 서울 | 1월 | 40 |
| 서울 | 2월 | 35 |
| 부산 | 1월 | 20 |
| 대구 | 1월 | 15 |
| 대구 | 2월 | 25 |
㉠
SELECT 지역, 월, SUM(건수) FROM 배송실적 GROUP BY ROLLUP (지역, 월);
㉡
SELECT 지역, 월, SUM(건수) FROM 배송실적 GROUP BY ROLLUP (월, 지역);
1
11, 11
2
8, 9
3
9, 9
4
9, 8
해설
ROLLUP 은 (전체 인수) → (첫 인수) → () 순으로 집계하므로 ㉠은 상세 5 + 지역 소계 3 + 총계 1 = 9행, ㉡은 상세 5 + 월 소계 2 + 총계 1 = 8행이다.
ROLLUP 은 인수 순서가 바뀌면 소계 대상이 바뀌어 결과가 달라지며, 순서와 무관한 것은 CUBE 이다.
- 8, 9 는 소계가 마지막 인수 기준이라고 거꾸로 본 경우이다.
- 9, 9 는 인수 순서가 결과에 영향이 없다고 본 경우이다.
- 11, 11 은 두 방향 소계를 모두 만드는 CUBE 의 결과이다.
오류나 개정된 내용이 보이면 알려주세요