다음 SQL 결과에서 구분 값이 '소계'인 행 수와 '미분류'인 행 수… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL 결과에서 구분 값이 '소계'인 행 수와 '미분류'인 행 수를 순서대로 나열한 것은?

[대출집계]

지점분류권수
본관문학3
본관(null)2
본관과학4
분관문학5
분관문학1
분관(null)2
SELECT 지점,
       CASE WHEN GROUPING(분류) = 1 THEN '소계'
            ELSE COALESCE(분류, '미분류') END AS 구분,
       SUM(권수) AS 합계
  FROM 대출집계
 GROUP BY GROUPING SETS ((지점, 분류), (지점), ())
 ORDER BY 1, 2;
1
5, 0
2
3, 1
3
2, 2
4
3, 2
해설

GROUPING(분류) 는 집계 과정에서 분류가 묶여 생긴 NULL 에만 1을 주므로, 지점 소계 2행과 총계 1행이 '소계'가 되어 3행이다.

원래 분류가 NULL 인 데이터는 (지점, 분류) 그룹에서 GROUPING 값이 0이라 COALESCE 로 '미분류'가 되며, 본관·분관에 하나씩 2행이다.

  • 2와 2는 총계 행도 분류가 집계된 행이라는 점을 놓친 경우이다.
  • 5와 0은 원래 NULL 과 집계로 생긴 NULL 을 구분하지 못한 경우이다.
  • 3과 1은 지점이 다른 NULL 분류를 한 그룹으로 합친 경우이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 5회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기