All thing of the world!

Oracle PERCENTILE_DISC 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle PERCENTILE_DISC 설명 : 오라클 함수

WorldSeeker 2021. 4. 1. 09:52

1. 함수의 목적

     Oracle PERCENTILE_DISC는 이산분포모델을 가정한 역분포함수이다.
    백분위 수 및 정렬 지정을 사용하여 중앙값을 반환한다.
    Null은 계산에서 무시된다.


2. 샘플을 통한 개념 퀵뷰

hr.employees에서 각 직원의 급여의 중앙값 백분위 수를 계산한다.
부서 30의 중간 값은 2900이며, 이는 해당 백분위 수 (Cume_Dist)가 0.5보다 크거나 같은 최소 값이다.
Department 60의 중간 값은 4800이며, 해당 백분위 수가 0.5 이상의 가장 작은 값입이다.


SELECT last_name, salary, department_id,
PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY salary DESC)
OVER (PARTITION BY department_id) "Percentile_Disc",
CUME_DIST() OVER (PARTITION BY department_id
ORDER BY salary DESC) "Cume_Dist"
FROM employees
WHERE department_id in (30, 60)
ORDER BY last_name, salary, department_id;




3. 사용방법  


4. 함수 PARAMETER 설명 

[expr]

첫 번째 expr은 백분위 수 값이므로 0과 1 사이의 숫자 값어야 한다.
ORDER BY 절 expr은 정렬 할 수 있는 모든 유형의 단일 표현식을 사용한다


5. 다양한 샘플표현


example1)     각 부서의 중간정도의 급여를 보여준다.
    PERCENTILE_CONT는 선형 보간(linear interpolation)을 수행 한 후 계산된 결과를 반환하고, PERCENTILE_DISC는 단순히 집계된 값 집합에서 리턴값을 반환한다.
   이 예제에서와 같이 백분위 수 값이 0.5이면 PERCENTILE_CONT는 짝수개의 요소가 있는 그룹의 중간 값 2 개를 평균으로 반환하지만, PERCENTILE_DISC는 두 개의 중간값 중 첫 번째 값을 반환한다.
   홀수개의 요소가 있는 집계그룹의 경우 두 함수 모두 중간 요소 값을 반환한다.


SELECT department_id,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary DESC) "Median cont",
PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY salary DESC) "Median disc"
FROM employees
GROUP BY department_id
ORDER BY department_id;


Comments