다음 세 SQL 의 결과 행 수를 (㉠, ㉡, ㉢) 순서로 바르게 나열… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 세 SQL 의 결과 행 수를 (㉠, ㉡, ㉢) 순서로 바르게 나열한 것은?

[게시글]

글번호게시판작성자
1공지관리자
2공지관리자
3자유민서
4자유도현
5자유민서
6질문하린
7질문도현
8(null)하린
㉠ SELECT 게시판, COUNT(*) FROM 게시글 GROUP BY 게시판;
㉡ SELECT 게시판, COUNT(*) OVER (PARTITION BY 게시판)
     FROM 게시글;
㉢ SELECT DISTINCT 게시판,
          COUNT(*) OVER (PARTITION BY 게시판)
     FROM 게시글;
1
4, 4, 4
2
4, 8, 8
3
3, 8, 3
4
4, 8, 4
해설

GROUP BY는 그룹당 한 행으로 줄이지만 윈도우 함수는 원래 행을 그대로 두고 값만 붙이므로 ㉠ 4행, ㉡ 8행, ㉢ 4행이다.

게시판이 NULL인 글도 GROUP BY와 PARTITION BY에서 하나의 그룹이 되어 공지·자유·질문과 함께 4개로 묶이고, ㉢은 DISTINCT로 같은 행을 줄인다.

  • 3으로 센 것은 NULL 게시판을 그룹에서 뺀 경우다.
  • ㉡을 4행으로 본 것은 윈도우 함수가 행을 줄인다고 오해한 것이다.
  • ㉢을 8행으로 본 것은 DISTINCT의 중복 제거를 놓친 것이다.

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

이어서 풀어보기

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