다음 SQL 의 실행 결과로 옳은 것은?[청구]청구번호유형채널금액1입원… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 SQL 의 실행 결과로 옳은 것은?[청구]
| 청구번호 | 유형 | 채널 | 금액 |
|---|---|---|---|
| 1 | 입원 | 앱 | 100 |
| 2 | 입원 | (null) | 50 |
| 3 | 통원 | 앱 | 30 |
| 4 | 통원 | 앱 | 20 |
SELECT 유형, 채널, SUM(금액) AS 합계,
GROUPING(채널) AS G
FROM 청구
GROUP BY GROUPING SETS ((유형, 채널), (유형))
ORDER BY 유형, G, 채널;1
| 유형 | 채널 | 합계 | G |
|---|---|---|---|
| 입원 | 앱 | 100 | 0 |
| 입원 | (null) | 50 | 0 |
| 입원 | (null) | 100 | 1 |
| 통원 | 앱 | 50 | 0 |
| 통원 | (null) | 50 | 1 |
2
| 유형 | 채널 | 합계 | G |
|---|---|---|---|
| 입원 | 앱 | 100 | 0 |
| 입원 | (null) | 50 | 0 |
| 입원 | (null) | 150 | 1 |
| 통원 | 앱 | 50 | 0 |
| 통원 | (null) | 50 | 1 |
| (null) | (null) | 200 | 1 |
3
| 유형 | 채널 | 합계 | G |
|---|---|---|---|
| 입원 | 앱 | 100 | 0 |
| 입원 | (null) | 150 | 0 |
| 입원 | (null) | 50 | 1 |
| 통원 | 앱 | 50 | 0 |
| 통원 | (null) | 50 | 1 |
4
| 유형 | 채널 | 합계 | G |
|---|---|---|---|
| 입원 | 앱 | 100 | 0 |
| 입원 | (null) | 50 | 0 |
| 입원 | (null) | 150 | 1 |
| 통원 | 앱 | 50 | 0 |
| 통원 | (null) | 50 | 1 |
해설
GROUPING SETS ((유형, 채널), (유형)) 은 유형·채널 상세와 유형 소계만 만들고 총계는 만들지 않으며, 소계 행의 GROUPING(채널) 만 1이다.
입원의 NULL 채널 50은 원래 데이터의 NULL 이라 G=0 인 상세 행이고, 입원 소계 150은 NULL 채널 금액까지 더한 값이다.
- 원래 NULL 행에 1을 준 표는 GROUPING 이 집계로 생긴 NULL 에만 1을 준다는 점을 놓쳤다.
- 총계 행이 있는 표는 () 를 지정하지 않았는데도 전체 합계를 넣었다.
- 입원 소계를 100으로 쓴 표는 채널이 NULL 인 행을 소계에서 뺀 것이다.
오류나 개정된 내용이 보이면 알려주세요
이어서 풀어보기
[SQLD] SQL 개발자 기출유형 모의고사 10회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- sql문에서having을사용할수있는절은? {"answer":3,"content":[{"content":"like절","url":""},{"content21년-3회차-정보처리기사-필기
- sql문에서select에대한설명으로옳지않은것은? {"answer":2,"content":[{"content":"from절에는질의에의해검색될데이터들을포함21년-2회차-정보처리기사-필기
- 다음조건을만족하면서,과목별점수의평균이90이상인과목이름,최소점수,최대점수를구하는sql문을작성하시오. -대소문자를구분하지않는다. -where구분을사용하지않는다. -g2020년 정보처리기사실기 3회차