다음 SQL 을 실행했을 때 결과 행 수는?[상영실적]관이름장르관객수1… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 SQL 을 실행했을 때 결과 행 수는?

[상영실적]

관이름장르관객수
1관액션50
1관(null)30
2관액션40
2관액션20
SELECT 관이름, 장르, SUM(관객수) AS 관객
  FROM 상영실적
 GROUP BY GROUPING SETS ((관이름, 장르), (관이름), ())
HAVING GROUPING(장르) = 1
 ORDER BY 관이름, 장르;
1
4
2
2
3
6
4
3
해설

GROUPING(장르) 는 장르가 집계로 인해 NULL 이 된 행에서만 1 이므로, HAVING 조건은 1관·2관 소계와 총계 3행만 남긴다.

GROUPING SETS 가 만든 행은 상세 3, 관별 소계 2, 총계 1 의 6행이며, 1관의 장르 NULL 상세 행은 원래 데이터의 NULL 이라 GROUPING 값이 0 이다.

  • 2행은 총계 행의 GROUPING(장르) 도 1 이라는 점을 놓친 값이다.
  • 4행은 원래 NULL 인 장르 상세 행까지 포함한 값이다.
  • 6행은 HAVING 조건을 적용하기 전의 전체 행 수이다.

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

이어서 풀어보기

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