다음 [결과]를 얻기 위해 ( ㉠ )에 들어갈 구문으로 옳은 것은?[학… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 [결과]를 얻기 위해 ( ㉠ )에 들어갈 구문으로 옳은 것은?

[학생]

학번학과학년
1경영1
2경영2
3컴공1
4컴공1
5컴공3
6통계2
SELECT 학과, 학년, GROUPING(학과) AS G, COUNT(*) AS 인원
  FROM 학생
 GROUP BY ( ㉠ )
 ORDER BY 3, 1, 2;

[결과]

학과학년G인원
경영(null)02
컴공(null)03
통계(null)01
(null)113
(null)212
(null)311
(null)(null)16
1
GROUPING SETS (학과, 학년, ())
2
학과, 학년
3
CUBE (학과, 학년)
4
ROLLUP (학과, 학년)
해설

결과에 학과별 소계, 학년별 소계, 총계만 있고 학과·학년 상세 행이 없으므로 GROUPING SETS (학과, 학년, ())가 맞다.

GROUPING(학과)는 학과가 집계로 생긴 NULL일 때 1이어서 학년 소계와 총계 행에서 1, 학과 소계 행에서 0이다.

  • ROLLUP은 학과·학년 상세 행이 생기고 학년별 소계가 없다.
  • CUBE는 원하는 소계 외에 상세 행까지 만든다.
  • 일반 GROUP BY 학과, 학년은 상세 행만 만들고 소계가 없다.

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

이어서 풀어보기

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