PERCENTILE_DISC
구문
PERCENTILE_DISC(expr) WITHIN GROUP
(ORDER BY expr [ DESC | ASC ])
[ OVER (query_partition_clause) ]
참고:
OVER 절의 구문, 의미, 그리고 제한 사항에 대한 정보는 분석 함수에 대한 내용을 참조하세요.
목적
PERCENTILE_DISC 함수는 이산 분포 모델(discrete distribution model)을 가정하는 역분포(inverse distribution) 함수입니다. 백분위 값과 정렬 사양을 취하고 집합에서 요소를 반환합니다. 계산 과정에서 널(null)은 무시됩니다.
이 함수는 숫자 데이터 유형 또는 숫자 데이터 유형으로 암묵적으로 변환될 수 있는 비숫자 데이터 유형을 인수로 취합니다. 함수는 인수의 숫자 데이터 유형과 동일한 데이터 유형을 반환합니다.
참고:
암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하십시오.
첫 번째 표현식(expr)은 백분위 값이므로 0과 1 사이의 숫자 값으로 평가되어야 합니다. 이 표현식은 각 집계 그룹 내에서 상수여야 합니다. ORDER BY 절은 정렬 가능한 모든 유형의 단일 표현식을 취할 수 있습니다.
주어진 백분위 값 P에 대해, PERCENTILE_DISC 함수는 ORDER BY 절에서 표현식의 값을 정렬하고, 동일한 정렬 기준에 따라 P보다 크거나 같은 최소 CUME_DIST 값을 가지는 값을 반환합니다.
노트: PERCENTILE_DISC 함수로 대량의 데이터를 처리하기 전에, 정확한 결과보다는 근사치 결과를 더 빠르게 얻을 수 있는 다음 방법 중 하나를 사용하는 것을 고려해보십시오.
• PERCENTILE_DISC 또는 ALL로 APPROX_FOR_PERCENTILE 초기화 매개변수를 설정하십시오. PERCENTILE_DISC 함수를 사용하기 전에 이 매개변수에 대한 정보는 Oracle Database Reference를 참조하십시오.
• PERCENTILE_DISC 함수 대신 APPROX_PERCENTILE 함수를 사용하십시오. APPROX_PERCENTILE에 대한 정보는 APPROX_PERCENTILE를 참조하십시오.
집계 예제
PERCENTILE_CONT의 집계 예제를 참조하세요.
분석 예제
다음 예제는 샘플 테이블 hr.employees의 각 직원의 급여의 중간 이산 백분위수를 계산합니다.
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;
LAST_NAME SALARY DEPARTMENT_ID Percentile_Disc Cume_Dist
------------------------- ---------- ------------- --------------- ----------
Austin 4800 60 4800 .8
Baida 2900 30 2900 .5
Colmenares 2500 30 2900 1
Ernst 6000 60 4800 .4
Himuro 2600 30 2900 .833333333
Hunold 9000 60 4800 .2
Khoo 3100 30 2900 .333333333
Lorentz 4200 60 4800 1
Pataballa 4800 60 4800 .8
Raphaely 11000 30 2900 .166666667
Tobias 2800 30 2900 .666666667
부서 30의 중앙값은 2900이며, 해당 백분위수(Cume_Dist)가 0.5보다 크거나 같은 가장 작은 값입니다. 부서 60의 중앙값은 4800이며, 해당 백분위수가 0.5보다 크거나 같은 가장 작은 값입니다.
출처: 오라클 레퍼런스
원문 링크: Oracle PERCENTILE_DISC 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] POWERMULTISET - 중첩 테이블의 모든 비어있지 않은 하위 집합 반환 (0) | 2023.08.12 |
---|---|
[오라클 레퍼런스 함수] POWER - n제곱 계산 (0) | 2023.08.12 |
[오라클 레퍼런스 함수] PERCENTILE_CONT - 보간된 백분위 계산 (0) | 2023.08.12 |
[오라클 레퍼런스 함수] PERCENT_RANK - 백분율 순위 계산 (0) | 2023.08.12 |
[오라클 레퍼런스 함수] PATH - 상대 경로 반환 (0) | 2023.08.12 |
댓글