● 그룹내 비율 함수 

 

RATIO_TO_REPORT,  PERCENT_RANK, CUME_DIST, NTILE  

 

특이점은 CUME_DIST만 동일 순서이면 뒤 행의 함수 결과 값을 기준으로 한다.

누적백분율이라서 그런가...

아래 결과값에서 MARTIN과 TURNER의 CUME_DIST 값이 .67이 아니고 .83 이다.

 

SELECT
     ENAME
    ,SAL
    ,ROUND( RATIO_TO_REPORT (SAL) OVER () ,2 ) AS RTR         -- 전체 sum(컬럼)값에 대한 행별 컬럼 값의 백분율.  결과값은 > 0 & <=1 범위
    ,ROUND( PERCENT_RANK() OVER (ORDER BY SAL ) ,2) AS PR     -- 파티션별 윈도우의 값이 아닌 행의 순서별 백분열. 결과값은 >=0 & <=1 범위 
    ,ROUND( CUME_DIST() OVER(ORDER  BY SAL) ,2) AS CD         -- 파티션별 윈도우 누적 백분열을 구한다.           결과값은 > 0 & <=1 범위   
    ,NTILE(4) OVER (ORDER BY SAL) AS NT                       -- 전체 건수를 ARGUMENT값으로 N등분한 결과를 구함.
FROM EMP WHERE JOB = 'SALESMAN';

 

'SQLP' 카테고리의 다른 글

Barker 표기법과 IE 표기법  (2) 2024.11.10
오라클 트랜잭션  (0) 2024.10.19
함수 호출에 따른 Recursive Call  (0) 2024.10.14
오라클 PIVOT UNPIVOT  (0) 2024.10.14
야간 배치 INSERT  (1) 2024.10.13

+ Recent posts