다음 SQL 결과에서 채널이 NULL 이고 결제수단이 '카드'인 행의 … | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 SQL 결과에서 채널이 NULL 이고 결제수단이 '카드'인 행의 합계는?[주문]
| 주문번호 | 채널 | 결제수단 | 금액 |
|---|---|---|---|
| 1 | 앱 | 카드 | 100 |
| 2 | 앱 | 현금 | 40 |
| 3 | 웹 | 카드 | 70 |
| 4 | 웹 | 카드 | 30 |
| 5 | 매장 | 현금 | 50 |
| 6 | 매장 | 카드 | (null) |
SELECT 채널, 결제수단, SUM(금액) AS 합계 FROM 주문 GROUP BY CUBE(채널, 결제수단) ORDER BY 채널, 결제수단;
1
100
2
140
3
200
4
290
해설
CUBE(채널, 결제수단)는 채널별 소계뿐 아니라 채널을 NULL 로 둔 결제수단별 소계도 만들므로, 카드 소계는 100+70+30=200 이다.
매장의 카드 주문은 금액이 NULL 이라 SUM 에서 제외되며, 채널과 결제수단이 모두 NULL 인 총계 행은 290 이다.
- 140 은 결제수단이 NULL 인 앱 채널 소계와 혼동한 값이다.
- 290 은 두 열이 모두 NULL 인 총계 행의 값이다.
- 100 은 앱 채널의 카드 상세 행 값이다.
오류나 개정된 내용이 보이면 알려주세요