문제
다음 윈도우 함수들의 결과 차이로 가장 적절한 것은?
SQL점수테이블: 학번, 점수 1001, 95 1002, 95 1003, 85 1004, 75 RANK() OVER(ORDER BY 점수 DESC) vs DENSE_RANK() OVER(ORDER BY 점수 DESC)
① RANK: 1,1,3,4 / DENSE_RANK: 1,1,2,3 ② RANK: 1,2,3,4 / DENSE_RANK: 1,1,2,3 ③ RANK: 1,1,2,3 / DENSE_RANK: 1,1,3,4 ④ 두 함수는 항상 동일한 결과를 반환한다
정답
1번
해설
RANK() 함수는 동일한 순위가 있을 때 다음 순위를 건너뜁니다. 95점이 2명이므로 1,1 다음은 3위가 됩니다. DENSE_RANK()는 순위를 건너뛰지 않고 연속으로 부여하므로 1,1 다음은 2위가 됩니다. 따라서 RANK: 1,1,3,4, DENSE_RANK: 1,1,2,3이 됩니다.