[순위] ROW_NUMBER, RANK, DENSE_RANK
2022. 5. 18. 15:44ㆍMYSQL
우선적으로 ROW_NUMBER은 동일한 값에도 고유 순위를 부여하게 된다.
RANK와 DENSE_RANK는 동일한 값이면 같은 순위를 부여하지만,
DENSE_RANK는 동일한 순위가 여러개일 경우에도 순위가 이어지지만,
RANK는 동일한 순위가 여러개이면 순위를 건너뛰고 순위를 계산한다.
SELECT *, ROW_NUMBER()OVER(PARTITION BY COMPANY ORDER BY SALARY) AS 'RANK1'
, DENSE_RANK()OVER(PARTITION BY COMPANY ORDER BY SALARY) AS 'RANK2'
, RANK()OVER(PARTITION BY COMPANY ORDER BY SALARY) AS 'RANK3'
FROM #TMP
ORDER BY 1
NO | NAME | COMPANY | SALARY | RANK1 | RANK2 | RANK3 |
1 | Tom | A | 3000 | 1 | 1 | 1 |
2 | Gray | A | 5000 | 4 | 3 | 4 |
3 | Jinny | A | 3500 | 2 | 2 | 2 |
4 | Lily | A | 3500 | 3 | 2 | 2 |
5 | Jim | B | 2900 | 1 | 1 | 1 |
6 | Amy | B | 3400 | 2 | 2 | 2 |
7 | Ren | B | 4000 | 5 | 4 | 5 |
8 | Eric | B | 3500 | 4 | 3 | 4 |
9 | John | B | 3400 | 3 | 2 | 2 |
10 | Wong | C | 2800 | 1 | 1 | 1 |
11 | Ben | C | 3400 | 2 | 2 | 2 |
12 | Sally | C | 3700 | 3 | 3 | 3 |
13 | Mickey | C | 4000 | 5 | 4 | 5 |
14 | Wendy | C | 3700 | 4 | 3 | 3 |
'MYSQL' 카테고리의 다른 글
[형 변환] CAST, CONVERT (0) | 2022.05.18 |
---|---|
[문자열 위치 찾기] PATINDEX, CHARINDEX (0) | 2022.05.18 |
[날짜] DATEPART, DATEDIFF (0) | 2022.05.18 |
[치환함수] REPLACE, ISNULL (0) | 2022.05.18 |
[INFORMATION_SCHEMA] 메타데이터 확인하기 (0) | 2022.05.18 |