Oracle CUME_DIST 설명 : 오라클 함수
1. 함수의 목적
Oracle CUME_DIST는 누적분포(the cumulative distribution)를 구한다.
* 누적분포란?
어떤 확률분포에서 확률변수가 어떤 특정한 값보다 같거나 작을 확률을 말함(by WIKI)
2. 샘플을 통한 개념 퀵뷰
purchasing division(like 'PU%')의 급여 백분위 수를 구한다.
SELECT job_id, last_name, salary, CUME_DIST()
OVER (PARTITION BY job_id ORDER BY salary) AS cume_dist
FROM employees
WHERE job_id LIKE 'PU%'
ORDER BY job_id, last_name, salary, cume_dist;
JOB_ID LAST_NAME SALARY CUME_DIST
---------- ------------------------- ---------- ----------
PU_CLERK Baida 2900 .8
PU_CLERK Colmenares 2500 .2
PU_CLERK Himuro 2600 .4
PU_CLERK Khoo 3100 1
PU_CLERK Tobias 2800 .6
PU_MAN Raphaely 11000 1
3. 사용방법
1) 집계용(aggregate)
2) 분석용(analytic)
4. 함수 PARAMETER 설명
함수 결과값은 0 < 결과값 <= 1의 range를 가진다.
[expr]
숫자형 데이터를 입력값을 가지며, 문자라도 숫자로 변경이 가능한 문자는 내부적으로 변환하여 입력된다.
5. 다양한 샘플표현
example1) 직원 중 급여가 $ 15,500이고 수수료율이 5 % 인 가상 사원의 누적 분포를 계산한다.
SELECT CUME_DIST(15500, .05) WITHIN GROUP
(ORDER BY salary, commission_pct) "Cume-Dist of 15500"
FROM employees;
Cume-Dist of 15500
------------------
.972222222