😊 RANK() / DENSE_RANK()
- 특정 컬럼의 값을 기준으로 그 값의 순위를 매길 때 사용된다
- 동일한 값이 여러 개 있는 경우 순위가 동일한 값을 가진다
SELECT id, last_name , RANK() OVER (ORDER BY agency_fee DESC) AS agency_fee
FROM sales_agents ;
| first_name | gallery_id |
|---|
| Smith | 1 |
| White | 2 |
| Brown | 3 |
| Stewart | 4 |
| Black | 5 |
PARTITION 사용법
- 파티션은 데이터를 분할하는 데 사용되며 각 파티션은 독립적으로 순위를 매길 수 있다
- agency_fee로 순위를 매기지만 각 직원이 해당하는 미술관 안에서 랭크를 매긴다
SELECT
id,
last_name,
RANK() OVER (PARTITION By gallery_id ORDER BY agency_fee DESC) AS agency_fee
FROM sales_agents ;
| id | last_name | agency_fee |
|---|
| 4 | Smith | 1 |
| 1 | Brown | 1 |
| 3 | Black | 2 |
| 2 | White | 1 |
| 5 | Stewart | 2 |
LEAD() / LAG()