2024. 6. 22. 20:37ㆍDBMS/SQLQuery
KEY GRP VAL1 VAL2
1 A 10 100
2 A 10 200
3 A 10 300
4 A 20 400
5 A 50 500
6 B 40 600
7 B 10 700
8 B 20 800
9 B 20 900
10 B 10 1000
\[
\text{PERCENT_RANK} = \frac{\text{RANK} - 1}{\text{ROW_COUNT} - 1}
\]
- RANK: 해당 값의 순위. 동일한 값은 동일한 순위를 가진다.
- ROW_COUNT: 파티션 내의 총 행 수.
GRP = 'A' 파티션에서의 계산
- KEY = 1, 2, 3:
\[
\text{PERCENT\_RANK} = \frac{1 - 1}{5 - 1} = \frac{0}{4} = 0.0
\]
- KEY = 4:
\[
\text{PERCENT\_RANK} = \frac{4 - 1}{5 - 1} = \frac{3}{4} = 0.75
\]
- KEY = 5:
\[
\text{PERCENT\_RANK} = \frac{5 - 1}{5 - 1} = \frac{4}{4} = 1.0
\]
GRP = 'B' 파티션에서의 계산
| KEY | VAL1 |
|-----|------|
| 6 | 40 |
| 7 | 10 |
| 8 | 20 |
| 9 | 20 |
| 10 | 10 |
- ROW_COUNT = 5
각 행에 대한 RANK 값은 다음과 같다:
| KEY | VAL1 | RANK |
|-----|------|------|
| 7 | 10 | 1 |
| 10 | 10 | 1 |
| 8 | 20 | 3 |
| 9 | 20 | 3 |
| 6 | 40 | 5 |
- PERCENT_RANK 계산:
- KEY = 7, 10:
\[
\text{PERCENT\_RANK} = \frac{1 - 1}{5 - 1} = \frac{0}{4} = 0.0
\]
- KEY = 8, 9:
\[
\text{PERCENT\_RANK} = \frac{3 - 1}{5 - 1} = \frac{2}{4} = 0.5
\]
- KEY = 6:
\[
\text{PERCENT\_RANK} = \frac{5 - 1}{5 - 1} = \frac{4}{4} = 1.0
\]
따라서 GRP = 'A'와 GRP = 'B'의 각 행에 대해 VAL1 값이 가장 낮은 행들은 PERCENT_RANK가 0.0으로 계산되며 해당 값이 파티션 내에서 상대적으로 가장 낮은 순위임을 의미한다.

'DBMS > SQLQuery' 카테고리의 다른 글
| wm comcat (0) | 2024.09.09 |
|---|---|
| trim (0) | 2024.07.24 |
| WINDOW FUNCTION (0) | 2024.06.22 |
| 계층 쿼리 prior 위치 (0) | 2024.05.21 |
| NVL, COALESCE, NULLIF (0) | 2024.05.20 |