학습용 기출·복원자료 분류 확인SQLD · 2025년 57회 SQL 기본 및 활용 · 33번
Oracle에서 전체 데이터를 점수 내림차순으로 정렬한 뒤 상위 10건을 조회하는 방법은?
1
ROWNUM <= 10을 먼저 적용한 뒤 같은 블록에서 ORDER BY한다.
오답 이유‘ROWNUM <= 10을 먼저 적용한 뒤 같은 블록에서 ORDER BY한다.’ 구문은 ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’과 실행 결과나 적용 조건이 다르다. ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’은 Top-N 질의의 정의와 질문에서 요구한 적용 조건을 충족한다. 따라서 1번 보기 ‘ROWNUM <= 10을 먼저 적용한 뒤 같은 블록에서 ORDER BY한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.
정답 근거‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’은 Top-N 질의의 정의와 질문에서 요구한 적용 조건을 충족한다. 따라서 2번 보기 ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
ORDER BY 없이 ROWNUM = 10만 적용한다.
오답 이유‘ORDER BY 없이 ROWNUM = 10만 적용한다.’ 구문은 ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’과 실행 결과나 적용 조건이 다르다. ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’은 Top-N 질의의 정의와 질문에서 요구한 적용 조건을 충족한다. 따라서 3번 보기 ‘ORDER BY 없이 ROWNUM = 10만 적용한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
ROWNUM을 문자열로 변환한 뒤 정렬한다.
오답 이유‘ROWNUM을 문자열로 변환한 뒤 정렬한다.’은 이 문항에서 요구하는 ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’의 정의·역할과 구분된다. ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’은 Top-N 질의의 정의와 질문에서 요구한 적용 조건을 충족한다. 따라서 4번 보기 ‘ROWNUM을 문자열로 변환한 뒤 정렬한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’입니다. ‘인라인 뷰에서 ORDER BY한 뒤 바깥 쿼리에서 ROWNUM <= 10을 적용한다.’은 Top-N 질의의 정의와 질문에서 요구한 적용 조건을 충족한다.