PERCENT_RANK() 상대평가

2024. 6. 22. 20:37DBMS/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