다음 SQL 의 실행 결과로 옳은 것은? (정렬 시 NULL 은 마지막… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL 의 실행 결과로 옳은 것은? (정렬 시 NULL 은 마지막에 온다)[예약]
| 출발공항 | 좌석등급 | 운임 |
|---|---|---|
| GMP | ECO | 100 |
| GMP | ECO | 120 |
| GMP | BIZ | 300 |
| ICN | ECO | 200 |
| ICN | BIZ | 500 |
| ICN | ECO | 150 |
SELECT 출발공항, 좌석등급, SUM(운임) AS 합계 FROM 예약 GROUP BY 출발공항, ROLLUP(좌석등급) ORDER BY 출발공항, 좌석등급;
1
| 출발공항 | 좌석등급 | 합계 |
|---|---|---|
| GMP | BIZ | 300 |
| GMP | ECO | 220 |
| GMP | (null) | 520 |
| ICN | BIZ | 500 |
| ICN | ECO | 350 |
| ICN | (null) | 850 |
2
| 출발공항 | 좌석등급 | 합계 |
|---|---|---|
| GMP | BIZ | 300 |
| GMP | ECO | 220 |
| ICN | BIZ | 500 |
| ICN | ECO | 350 |
| (null) | BIZ | 800 |
| (null) | ECO | 570 |
3
| 출발공항 | 좌석등급 | 합계 |
|---|---|---|
| GMP | BIZ | 300 |
| GMP | ECO | 220 |
| GMP | (null) | 520 |
| ICN | BIZ | 500 |
| ICN | ECO | 350 |
| ICN | (null) | 850 |
| (null) | (null) | 1370 |
4
| 출발공항 | 좌석등급 | 합계 |
|---|---|---|
| GMP | BIZ | 300 |
| GMP | ECO | 220 |
| ICN | BIZ | 500 |
| ICN | ECO | 350 |
| (null) | (null) | 1370 |
해설
출발공항은 ROLLUP 밖에 있어 모든 행의 그룹 기준으로 남으므로, 상세 4행에 출발공항별 소계 2행(520·850)만 더해진 6행이 나오고 총계는 없다.
ROLLUP(좌석등급) 은 (출발공항, 좌석등급) 과 (출발공항) 두 수준만 만든다. 좌석등급이 NULL 인 행이 소계이며 정렬상 각 공항의 마지막에 온다.
- 소계 없이 총계만 있는 표는 ROLLUP 이 총계만 만든다고 본 결과이다.
- 총계 1370 까지 있는 표는 ROLLUP(출발공항, 좌석등급) 의 결과이다.
- 좌석등급별 소계가 붙은 표는 묶는 순서를 거꾸로 본 결과이다.
오류나 개정된 내용이 보이면 알려주세요