Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

PERCENTILE_DISC

문법

MAIN

percentile_disc::=
Description of percentile_disc.gif follows

그림 설명

목적

MAIN

PERCENTILE_DISC함수는 이산 분포 모형을 가정하는 역 분포 함수이다.이 함수는 백분위수와 소트 지정을 취해서, 세트로부터 요소를 반환한다. 계산에서 Null은 무시된다.

이 함수는 인수로써 임의의 수치 데이터형 또는 암묵적으로 수치 데이터형으로 변환 가능한 비 수치 데이터형을 취한다. 함수는 인수의 수치 데이터형과 같은 데이터형을 반환한다.

처음 expr은 0~1 사이의 수치값으로 평가된다. 왜냐하면 백분위 값이기 때문이다. 이 표현은 각 집계 그룹내에서 상수가 될필요가 있다. ORDER BY구문은 소트 가능한 단일 표현을 취한다.

주어진 백분위 값 P에 대해서, PERCENTILE_DISC는 ORDER BY 구문에서 표현의 값을 소트하여서, P 이상인(같은 소트 지정에 따르는)것 중에 최소 CUME_DIST값을 가지는 값을 반환한다.

-INVERSE PERCENTILE FUNCTION

CUME_DIST 함수를 이용하여 값들의 집합에서 값의 위치를 계산할 수 있었으나 역산 (특정한 백분위수의 값을 발견하는)은 어렵거나 효과적인 연산이 수행되지는 않습니다. 이러한 어려움을 극복하기 위하여 PERCENTILE_CONT와 PERCENTILE_DISC 같은 역 분포 함수를 제공합니다. PERCENTILE_CONT는 연속분포 (Continuous Distribution)를 가정한 역 분포 함수이고, PERCENTILE_DISC는 이산분포(Discrete Distribution)를 가정한 역 분포 함수입니다.

 

PERCENTILE_CONT: 입력받은 수치 값이 어느 두 값의 사이일 경우 두 값의 사이에서 계산된 값을 리턴한다.
PERCENTILE_DISC: 입력받은 수치 값이 어느 두 값의 사이일 경우 다른 계산과정 없이 작은 값을 그대로 리턴한다.

 

예제

MAIN

집계 예제

PERCENTILE_CONT 예제 참조.


분석 예제

다음 예제는 샘플 테이블 hr.employess에서 각 종업원의 급여의 중앙값 이산 백분위를 계산한다.

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);

LAST_NAME         SALARY DEPARTMENT_ID Percentile_Disc  Cume_Dist
------------- ---------- ------------- --------------- ----------
Raphaely           11000            30            2900 .166666667
Khoo                3100            30            2900 .333333333
Baida               2900            30            2900         .5
Tobias              2800            30            2900 .666666667
Himuro              2600            30            2900 .833333333
Colmenares          2500            30            2900          1
Hunold              9000            60            4800         .2
Ernst               6000            60            4800         .4
Austin              4800            60            4800         .8
Pataballa           4800            60            4800         .8
Lorentz             4200            60            4800          1

부서 30에서 대응하는 백분위(Cume_Dist)가 0.5이상중에서 최소값을 가지는 중앙값은 2900이다.

부서 60에서 대응하는 백분위(Cume_Dist)가 0.5이상중에서 최소값을 가지는 중앙값은 4800이다.