RANK() 함수는 SQL에서 사용되는 윈도우 함수 중 하나입니다.
이 함수는 데이터를 정렬하고 정렬된 순서에 따라 각 행에 순위를 부여합니다.
예를 들어, 결과 집합에서 특정 열을 기준으로 순위를 매겨보겠습니다.
간단한 예를 통해 설명하겠습니다.
아래의 예시는 scores 테이블에서 학생들의 점수를 기준으로 랭킹을 매기는 쿼리입니다.
SELECT
student_name,
score,
RANK() OVER (ORDER BY score DESC) as ranking
FROM scores;
위의 쿼리에서 RANK() OVER (ORDER BY score DESC) 부분이 RANK() 함수입니다.
이 함수는 다음과 같이 구성되어 있습니다.
RANK(): 순위를 매길 대상 열을 지정합니다.
OVER: 윈도우 함수를 시작하는 키워드.
(ORDER BY score DESC): 정렬 기준을 나타냅니다.
이 경우 score를 내림차순으로 정렬합니다.
결과는 다음과 같습니다:
| student_name | score | ranking |
|--------------|-------|---------|
| John | 85 | 2 |
| Jane | 92 | 1 |
| Bob | 75 | 3 |
| Mary | 88 | 4 |
위의 결과에서 ranking 열은 학생들의 점수를 기준으로 내림차순으로 정렬했을 때의 순위를 나타냅니다.
RANK() 함수를 사용하면 데이터를 정렬하고 정렬된 순서에 따라 순위를 부여할 수 있습니다.
이를 활용하여 상위 N개의 결과를 선택하거나, 순위별로 특정 조건을 적용하는 등 다양한 분석 작업을 수행할 수 있습니다.