https://leetcode.com/problems/rank-scores/description/
점수로 순위를 매기는 SQL 쿼리를 작성합니다. 순위는 다음 규칙에 따라 계산해야 합니다.
점수는 가장 높은 것부터 가장 낮은 것까지로 순위를 매겨야 합니다.
두 점수 사이에 동점이 있을 경우, 두 점수 모두 순위가 같아야 합니다.
동점이 된 후, 다음 순위 번호는 다음 연속 점수 값이어야 합니다. 서열 사이에 빈 정수 값이 없어야 합니다. 점수순으로 정렬된 결과표를 내림차순으로 반환합니다.
DENSE_RANK()를 활용한 윈도우함수로 풀자.
규칙에서 요구하는 "동점이 된 후, 다음 순위 번호는 다음 연속 점수 값이어야 합니다.
이 부분을 해결해 주는 함수입니다. 반면에, rank 함수는 동점인 경우, 누적으로 계산"되어 적합하지 않습니다.
SELECT score,
DENSE_RANK() over (ORDER BY score DESC) as 'rank'
FROM Scores