1. RANK
그룹 내 현재 행의 순위를 반환한다. 동점인 경우에는 동일한 순위를 반환하며, 다음 순위는 그 수만큼 건너뛰어 매겨진다.
> 1, 2, 2, 4, 5, ---
2. DENSE_RANK
그룹 내 현재 행의 순위를 반환한다. 동점인 경우에 동일한 순위를 반환하며, rank와 다른 점은 다음 순위는 연속된 값으로 이어진다.
> 1, 2, 2, 2, 3, 4, 4, 5 ---
3. ROW_NUMBER
그룹 내 현재 행의 수를 반환한다. 행 마다 다른 값을 반환한다. 즉 공동 순위를 허용하지 않고 순차적으로 순위를 매길 때 활용한다. 정렬 기준이 2개 이상일 때 사용하기 좋다.
기본 형태는 다음과 같다.
rank | dense_rank | row_number() over(partition by column1 order by cal2)
-- 어떤 partition안에서 어떤 기준으로 정렬할 것인가)
'[스파르타코딩클럽]데이터분석 과정 > SQL' 카테고리의 다른 글
[SQL][개인과제] ECOMMERCE 데이터 분석(2)_중급~상급 문제 (1) | 2024.01.02 |
---|---|
[SQL][개인과제] ECOMMERCE 데이터 분석(1)_세팅~초급 문제 (0) | 2024.01.02 |
[SQL] ROLLUP_총계, 소계 구하기 (0) | 2024.01.01 |
[SQL] 날짜 더하기, 빼기, 날짜 간 차이 (0) | 2023.12.30 |
[SQL코드카타] 83~85번 (LeetCode) (0) | 2023.12.30 |