SQLDSQL 활용난이도 3MCQ

SQLD SQL 활용 기출문제 #1392

문제

다음 SQL의 실행 결과로 가장 적절한 것은?

SQL
SELECT region_code, SUM(sales_amount) as total_sales, CASE WHEN GROUPING(region_code) = 1 THEN '전체합계' ELSE region_code END as region_display FROM regional_sales WHERE year = 2024 GROUP BY ROLLUP(region_code) ORDER BY GROUPING(region_code), region_code;

지역별 데이터: EAST(1000), WEST(1500), SOUTH(800)

① 3개 행만 반환되며, 전체 합계 행은 생성되지 않는다 ② 4개 행이 반환되며, 마지막 행의 region_display는 '전체합계'가 된다 ③ 4개 행이 반환되며, 첫 번째 행의 region_display는 '전체합계'가 된다
④ GROUPING 함수 사용으로 인해 구문 오류가 발생한다

정답

2

해설

ROLLUP(region_code)는 지역별 소계와 전체 합계를 생성합니다. ORDER BY GROUPING(region_code)에 의해 일반 그룹(GROUPING=0)이 먼저, 전체 합계(GROUPING=1)가 나중에 정렬됩니다. 따라서 EAST(1000), SOUTH(800), WEST(1500), 전체합계(3300) 순서로 4개 행이 반환되며, 마지막 행의 region_display는 '전체합계'가 됩니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] SQL 활용 기출 #1392 | sqldpass