APPROX_MEDIAN
구문
APPROX_MEDIAN( expr [ DETERMINISTIC ] [, { 'ERROR_RATE' | 'CONFIDENCE' } ] )
목적
APPROX_MEDIAN은 연속적인 분포 모델을 가정하는 근사 역분포 함수입니다. 숫자 또는 날짜/시간 값을 취하고, 값을 정렬한 후 근사 중간값 또는 값들이 정렬된 경우의 보간된 중간값을 반환합니다. 이 계산에서는 NULL 값들은 무시됩니다.
이 함수는 MEDIAN 함수와 대체적인 기능을 제공합니다. MEDIAN 함수는 정확한 중간값이나 보간된 값을 반환하는 반면, APPROX_MEDIAN은 대량의 데이터를 처리할 때 MEDIAN에 비해 훨씬 빠른 속도로 동작하며, 정확한 결과와 거의 차이가 없습니다.
expr에는 대략적인 중앙값이 계산되는 표현식을 지정합니다. expr의 허용되는 데이터 유형 및 이 함수의 반환 값 데이터 유형은 DETERMINISTIC 절로 지정하는 알고리즘에 따라 달라집니다.
DETERMINISTIC
이 절을 사용하면 함수가 근사 중간값을 계산하는 데 사용하는 알고리즘 유형을 지정할 수 있습니다.
- DETERMINISTIC을 지정하면 함수는 결정론적 근사 중간값을 계산합니다. 이 경우 expr은 숫자 값 또는 숫자 값으로 암시적으로 변환 가능한 값이어야 합니다. 함수는 인수의 숫자 데이터 유형과 동일한 데이터 유형을 반환합니다.
- DETERMINISTIC을 생략하면 함수는 비결정론적 근사 중간값을 계산합니다. 이 경우 expr은 숫자 또는 날짜/시간 값이거나 숫자 또는 날짜/시간 값으로 암시적으로 변환 가능한 값이어야 합니다. 함수는 인수의 숫자 또는 날짜/시간 데이터 유형과 동일한 데이터 유형을 반환합니다.
ERROR_RATE | CONFIDENCE
이 절을 사용하면 함수로 계산된 값의 정확도를 결정할 수 있습니다. 이 중 하나의 절을 지정하면, expr의 근사 중간값 대신 0부터 1 사이의 십진수 값을 반환합니다.
- ERROR_RATE를 지정하면 반환 값은 expr에 대한 근사 중간값 계산의 오류율을 나타냅니다.
- CONFIDENCE를 지정하면 반환 값은 ERROR_RATE를 지정할 때 반환되는 오류율에 대한 신뢰 수준을 나타냅니다.
참고:
- MEDIAN
- APPROX_PERCENTILE 함수는 주어진 백분위수에 대해 보간 방식으로 해당 백분위수에 해당하는 대략적인 값을 반환합니다. APPROX_MEDIAN은 백분위수 값이 0.5인 APPROX_PERCENTILE의 특수한 경우입니다.
예제
다음 쿼리는 hr.employees 테이블에서 각 부서의 결정론적 근사 중간 급여를 반환합니다:
SELECT department_id "Department",
APPROX_MEDIAN(salary DETERMINISTIC) "Median Salary"
FROM employees
GROUP BY department_id
ORDER BY department_id;
Department Median Salary
---------- -------------
10 4400
20 6000
30 2765
40 6500
50 3100
60 4800
70 10000
80 9003
90 17000
100 7739
110 8300
7000
다음 쿼리는 이전 쿼리에서 반환된 근사 중간 급여의 오류율을 반환합니다:
SELECT department_id "Department",
APPROX_MEDIAN(salary DETERMINISTIC, 'ERROR_RATE') "Error Rate"
FROM employees
GROUP BY department_id
ORDER BY department_id;
Department Error Rate
---------- ----------
10 .002718282
20 .021746255
30 .021746255
40 .002718282
50 .019027973
60 .019027973
70 .002718282
80 .021746255
90 .021746255
100 .019027973
110 .019027973
.002718282
다음 쿼리는 이전 쿼리에서 반환된 오류율에 대한 신뢰 수준을 반환합니다:
SELECT department_id "Department",
APPROX_MEDIAN(salary DETERMINISTIC, 'CONFIDENCE') "Confidence Level"
FROM employees
GROUP BY department_id
ORDER BY department_id;
Department Confidence Level
---------- ----------------
10 .997281718
20 .999660215
30 .999660215
40 .997281718
50 .999611674
60 .999611674
70 .997281718
80 .999660215
90 .999660215
100 .999611674
110 .999611674
.997281718
다음 쿼리는 hr.employees 테이블에서 각 부서의 비결정론적 근사 중간 입사일을 반환합니다.
SELECT department_id "Department",
APPROX_MEDIAN(hire_date) "Median Hire Date"
FROM employees
GROUP BY department_id
ORDER BY department_id;
Department Median Hire Date
---------- ----------------
10 17-SEP-03
20 17-FEB-04
30 24-JUL-05
40 07-JUN-02
50 15-MAR-06
60 05-FEB-06
70 07-JUN-02
80 23-MAR-06
90 17-JUN-03
100 28-SEP-05
110 07-JUN-02
24-MAY-07
출처: 오라클 레퍼런스
원문 링크: Oracle APPROX_MEDIAN 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] APPROX_PERCENTILE_AGG - 근사 백분위수 정보 집계 (0) | 2023.07.30 |
---|---|
[오라클 레퍼런스 함수] APPROX_PERCENTILE - 근사 백분위수 계산 (0) | 2023.07.30 |
[오라클 레퍼런스 함수] APPROX_COUNT_DISTINCT_DETAIL - 근사치로 고유값 수 계산 (0) | 2023.07.30 |
[오라클 레퍼런스 함수] APPROX_COUNT_DISTINCT_AGG - 근사 중복 행 수 집계 (0) | 2023.07.29 |
[오라클 레퍼런스 함수] APPROX_COUNT_DISTINCT - 고유한 개수의 근사치를 반환 (0) | 2023.07.29 |
댓글