다음 SQL의 실행 결과로 옳은 것은?[대출]대출번호회원번호도서번호반납… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL의 실행 결과로 옳은 것은?

[대출]

대출번호회원번호도서번호반납일
1M01B12026-03-05
2M01B2(null)
3M02B32026-03-07
4M02B12026-03-10
5M03B4(null)
6M03B2(null)
7M01B52026-03-12
8M02B62026-03-15
SELECT 회원번호, COUNT(*) AS 반납수
  FROM 대출
 WHERE 반납일 IS NOT NULL
 GROUP BY 회원번호
 ORDER BY 반납수 DESC, 회원번호;
1
회원번호반납수
M012
M023
2
회원번호반납수
M023
M012
3
회원번호반납수
M023
M012
M030
4
회원번호반납수
M013
M023
M032
해설

논리적 처리 순서는 FROM → WHERE → GROUP BY → SELECT → ORDER BY 이므로, 반납일이 있는 행만 먼저 남긴 뒤 회원별로 세어 M02 3건, M01 2건이 된다.

반납 행이 하나도 없는 M03 은 WHERE 에서 모두 걸러져 그룹 자체가 생기지 않고, ORDER BY 는 SELECT 다음이라 별칭 반납수로 내림차순 정렬된다.

  • M01 3건·M03 2건이 보이는 표는 WHERE 를 적용하지 않은 결과다.
  • M01 이 먼저 나온 표는 반납수를 오름차순으로 정렬했다.
  • M03 0건 행은 걸러진 그룹이 0건으로 남는다고 오해한 것이다.

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

이어서 풀어보기

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