programing

cume_dist vs percent_rank 또는 차이

closeapi 2023. 10. 8. 09:53
반응형

cume_dist vs percent_rank 또는 차이

다음 쿼리에서는 다른 결과를 반환하지만 이 두 기능이 무엇인지 알 수 없습니다.

select firstname,gender,weight,height,
  cume_dist() over (order by height) cd,
  percent_rank() over (order by height) pr
from childstat order by height

FIRSTNAME                                          GENDER     WEIGHT     HEIGHT         CD         PR
-------------------------------------------------- ------ ---------- ---------- ---------- ----------
buddy                                              m             150         15 0.2857142857          0 
Albert                                             m             923         15 0.2857142857          0 
rosemary                                           f             123         35 0.4285714286 0.3333333333 
lauren                                             f             876         54 0.5714285714        0.5 
furkar                                             m             198         76 0.7142857143 0.6666666667 
tommy                                              m             167         78 0.8571428571 0.8333333333 
simon                                              m             256         87          1          1 

이 두 값은 다르게 계산됩니다. cume_distpercent_rank의 두 기능에 대한 설명서를 확인하십시오.

  1. CUME_DIST() over_clause

값 그룹 내에 있는 값의 누적 분포를 반환합니다. 즉, 현재 행의 값보다 작거나 같은 파티션 값의 백분율입니다.창 파티션의 창 순서에 있는 현재 행을 창 파티션의 총 행 수로 나눈 값입니다.반환 값의 범위는 0 ~ 1입니다.

  1. PERCENT_RANK() over_clause

현재 행의 값보다 작은 파티션 값의 백분율을 반환합니다(최대 값 제외).반환 값의 범위는 0부터 1이며 이 공식의 결과로 계산된 행 상대 순위를 나타냅니다. 여기서 순위는 행 순위이고 행은 분할 행의 개수입니다. (순위 - 1) / (행 - 1)

예를 들어, 첫 번째 행의 경우, 7개 행 중 현재 행 값(15)보다 작거나 같은 값(15)이 2개 있으므로 cume_dist가 2/7을 반환하고, (1-1) / (7-1) = 0이므로 percent_rank가 0을 반환합니다.

이 기능들이 어떤 역할을 하는지 여쭤보시는 건가요?

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions035.htm

CUME_DIST는 값 그룹에 있는 값의 누적 분포를 계산합니다.

예에서 이는 ~29%가 친구보다 키가 작거나 같다는 것을 의미합니다.~57%는 로렌보다 키가 작거나 같습니다.기타.

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions109.htm

PERCENT_RANK는 CUM_DIST(누적 분포) 함수와 유사합니다.PERCENT_RANK에서 반환하는 값의 범위는 0 ~ 1이며, 포함됩니다.집합의 첫 번째 행은 PERCENT_RANK가 0입니다.반환 값은 NUMBER입니다.

언급URL : https://stackoverflow.com/questions/23589711/cume-dist-vs-percent-rank-or-difference-between

반응형