Oracle 기준으로 다음 SQL 의 실행 결과로 옳은 것은?[성적]이… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

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

[성적]

이름점수
민준88
서연95
지호72
하은91
도윤88
유나60
SELECT 이름, 점수
  FROM (SELECT 이름, 점수
          FROM 성적
         ORDER BY 점수 DESC, 이름)
 WHERE ROWNUM <= 3
 ORDER BY 이름;
1
이름점수
도윤88
민준88
서연95
하은91
2
이름점수
서연95
하은91
도윤88
3
이름점수
도윤88
서연95
하은91
4
이름점수
도윤88
민준88
서연95
해설

인라인 뷰가 점수 내림차순(동점은 이름순)으로 서연·하은·도윤·민준… 을 만든 뒤 ROWNUM <= 3 이 앞의 세 행을 자르고, 바깥 ORDER BY 이름 이 그 3행만 다시 정렬한다.

동점 88 인 도윤과 민준 중 이름순으로 앞선 도윤만 3위 안에 들어간다.

  • 도윤·민준·서연 표는 바깥 ORDER BY 가 ROWNUM 보다 먼저 적용된다고 본 결과이다.
  • 4행 표는 동점을 모두 포함하는 WITH TIES 처럼 본 것으로, ROWNUM 은 정확히 3행에서 멈춘다.
  • 점수순으로 나온 표는 바깥 ORDER BY 이름을 무시한 결과이다.

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

이어서 풀어보기

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