SQLDSQL 활용TOP-N난이도 3MCQ

SQLD TOP-N 기출문제 #3743

문제

Oracle에서 점수가 높은 상위 10명을 정확히 조회하는 SQL로 가장 적절한 것은?

① SELECT * FROM EMP WHERE ROWNUM <= 10 ORDER BY SAL DESC ② SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC) WHERE ROWNUM <= 10 ③ SELECT * FROM EMP WHERE ROWNUM > 10 ORDER BY SAL DESC ④ SELECT * FROM EMP ORDER BY SAL DESC WHERE ROWNUM <= 10

정답

2

해설

정답: 2. Oracle에서 ROWNUM은 ORDER BY보다 먼저 부여될 수 있으므로 먼저 인라인 뷰에서 정렬한 뒤 바깥 쿼리에서 ROWNUM 조건을 적용해야 한다.

오답 풀이

  • 1번: ROWNUM이 먼저 적용되어 임의의 10건을 뽑은 뒤 정렬될 수 있다.
  • 2번: 정렬 후 상위 10건을 선택하는 올바른 방식이다.
  • 3번: ROWNUM > 10 조건은 일반적으로 원하는 결과를 반환하지 못한다.
  • 4번: SQL 문법상 WHERE 절 위치가 잘못되었다.

보충 개념 Top-N 쿼리는 정렬과 행 제한의 순서가 중요하다. Oracle 12c 이후에는 FETCH FIRST n ROWS ONLY도 사용할 수 있다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] TOP-N SQL 활용 기출 #3743 | 문어CBT