다음 SQL 의 결과 행 수와 전체 열의 값을 순서대로 나열한 것은?[… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 7회
다음 SQL 의 결과 행 수와 전체 열의 값을 순서대로 나열한 것은?

[수강]

학생번호과목
1국어
2국어
3국어
4수학
5수학
6영어
7영어
8(null)
SELECT 과목, COUNT(*) AS 인원,
       SUM(COUNT(*)) OVER () AS 전체
  FROM 수강
 GROUP BY 과목;
1
3, 7
2
4, 8
3
8, 8
4
4, 4
해설

윈도우 함수는 GROUP BY 가 끝난 뒤 그룹 행에 적용되므로 결과는 국어·수학·영어·NULL 의 4행이고, 각 그룹 인원 3·2·2·1 을 모두 더한 전체는 8 이다.

과목이 NULL 인 행도 하나의 그룹이 되며 COUNT(*) 는 그 행을 1 로 센다.

  • 8행은 윈도우 함수가 원본 행 수를 유지한다고 보고 GROUP BY 를 무시한 것이다.
  • 3행·7 은 NULL 그룹을 버린 결과로, GROUP BY 는 NULL 도 그룹으로 만든다.
  • 전체 4 는 SUM 이 그룹 개수를 센다고 본 값으로, 실제로는 인원을 더한다.

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

이어서 풀어보기

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