리트코드 [Rank Scores]

윤태영·2024년 9월 3일
0

문제

https://leetcode.com/problems/rank-scores/description/

  • 점수로 순위를 매기는 SQL 쿼리를 작성합니다. 순위는 다음 규칙에 따라 계산해야 합니다.

  • 점수는 가장 높은 것부터 가장 낮은 것까지로 순위를 매겨야 합니다.

  • 두 점수 사이에 동점이 있을 경우, 두 점수 모두 순위가 같아야 합니다.

  • 동점이 된 후, 다음 순위 번호는 다음 연속 점수 값이어야 합니다. 서열 사이에 빈 정수 값이 없어야 합니다. 점수순으로 정렬된 결과표를 내림차순으로 반환합니다.

Table : Scores

Example1

문제풀이

DENSE_RANK()를 활용한 윈도우함수로 풀자.
규칙에서 요구하는 "동점이 된 후, 다음 순위 번호는 다음 연속 점수 값이어야 합니다.
이 부분을 해결해 주는 함수입니다. 반면에, rank 함수는 동점인 경우, 누적으로 계산"되어 적합하지 않습니다.

쿼리

SELECT score,
DENSE_RANK() over (ORDER BY score DESC) as 'rank'
FROM Scores
profile
ice blue

0개의 댓글