[LeetCode/SQL]
📌 178. Rank Scores
풀이
점수별 순위를 작성하라
점수는 높은점수에서부터 낮은점수로 순위를 부여하라.
만약 점수 두개가 같다면, 같은 순위를 부여하라
그리고 그 다음은 연속적인 순위를 부여하라.
방법
SELECT score
,DENSE_RANK() OVER(ORDER BY score DESC) AS 'rank'
FROM Scores
※※※ 순위 함수
RANK() 함수:
동일한 값들에 대해서는 동일한 순위를 부여하며,
그 다음 순위는 그에 따라 증가합니다.
예시: 1, 2, 2, 4, 5 -> 순위: 1, 2, 2, 4, 5
DENSE_RANK() 함수:
동일한 값에 대해서도 순위를 부여하지만,
중복된 값이 있을 경우에는 중복 순위를 건너뛰지 않고
계속 순위를 증가시킵니다.
예시: 1, 2, 2, 4, 5 -> 순위: 1, 2, 2, 3, 4
ROW_NUMBER() 함수:
동일한 값에 대해서도 순위를 부여하며,
중복된 값에 대해서는 무조건 중복 순위를 부여하지 않고 순위 증가
예시: 1, 2, 2, 4, 5 -> 순위: 1, 2, 3, 4, 5