학습용 기출·복원자료 분류 확인SQLD · 2023년 48회 SQL 기본 및 활용 · 33번
ROLLUP 결과에서 소계 행의 NULL을 '소계'로 표시하는 방법으로 적절한 것은?
1
모든 NULL을 빈 문자열로 단순 치환한다.
오답 이유원본 데이터의 NULL까지 모두 빈 문자열로 바꾸면 집계가 만든 소계 NULL과 구별할 수 없다. 따라서 1번 보기 ‘모든 NULL을 빈 문자열로 단순 치환한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
WHERE 절에서 NULL 행을 제거한다.
오답 이유소계 행을 WHERE에서 제거하면 표시 문구를 바꾸는 것이 아니라 필요한 집계 행 자체가 사라진다. 따라서 2번 보기 ‘WHERE 절에서 NULL 행을 제거한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
ORDER BY 절에서 문자열 '소계'를 생성한다.
오답 이유ORDER BY는 정렬 순서를 정하는 절이므로 소계 행을 판별해 출력 문자열을 생성하는 역할을 하지 않는다. 따라서 3번 보기 ‘ORDER BY 절에서 문자열 '소계'를 생성한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
GROUPING 결과와 CASE를 이용해 소계 행을 구분한다.
정답 근거GROUPING 함수는 NULL이 원본 데이터인지 집계로 만들어진 값인지 구분한다. 이를 CASE와 결합해야 소계 행만 정확히 표시할 수 있다. 따라서 4번 보기 ‘GROUPING 결과와 CASE를 이용해 소계 행을 구분한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 4번
핵심 판단은 4번 ‘GROUPING 결과와 CASE를 이용해 소계 행을 구분한다.’입니다. GROUPING 함수는 NULL이 원본 데이터인지 집계로 만들어진 값인지 구분한다. 이를 CASE와 결합해야 소계 행만 정확히 표시할 수 있다.