문제
다음 성적 데이터에서 순위 함수의 결과로 올바른 것은?
학생별 점수: 95, 90, 90, 85
SQLSELECT ROW_NUMBER() OVER(ORDER BY 점수 DESC) AS RN, RANK() OVER(ORDER BY 점수 DESC) AS RK FROM 성적;
90점인 두 학생의 결과는?
① RN: 2,3 / RK: 2,2 ② RN: 2,3 / RK: 2,3 ③ RN: 2,2 / RK: 2,3 ④ RN: 1,2 / RK: 2,2
정답
1번
해설
ROW_NUMBER()는 동일한 값이라도 고유한 순번을 부여하므로 90점인 두 학생은 2, 3을 받습니다. RANK()는 동일한 값에 같은 순위를 부여하므로 90점인 두 학생 모두 2등이 됩니다. 따라서 RN: 2,3 / RK: 2,2가 정답입니다.