다음 SQL 의 결과 행 수는?[청구]청구번호유형채널금액1입원앱3002… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 SQL 의 결과 행 수는?[청구]
| 청구번호 | 유형 | 채널 | 금액 |
|---|---|---|---|
| 1 | 입원 | 앱 | 300 |
| 2 | 입원 | 창구 | 500 |
| 3 | 통원 | 앱 | 40 |
| 4 | 통원 | 앱 | 60 |
| 5 | 통원 | (null) | 30 |
| 6 | 수술 | 창구 | 900 |
| 7 | 입원 | 앱 | 200 |
SELECT 유형, 채널, SUM(금액) AS 합계 FROM 청구 GROUP BY CUBE (유형, 채널);
1
11
2
10
3
9
4
12
해설
CUBE (유형, 채널) 는 (유형, 채널)·(유형)·(채널)·() 네 가지 그룹을 모두 만들므로 상세 5 + 유형 소계 3 + 채널 소계 3 + 총계 1 = 12행이다.
채널이 NULL 인 통원 청구는 상세 그룹 (통원, NULL) 과 채널 NULL 소계를 따로 만들며, 이 소계는 총계와 합쳐지지 않는다.
- 9행은 ROLLUP 처럼 유형 소계와 총계만 센 값이다.
- 11행은 채널 NULL 소계를 총계와 같은 행으로 본 값이다.
- 10행은 채널이 NULL 인 데이터를 상세와 소계 모두에서 뺀 값이다.
오류나 개정된 내용이 보이면 알려주세요