APPROXIMATE PERCENTILE_DISC 함수 - Amazon Redshift

APPROXIMATE PERCENTILE_DISC 함수

APPROXIMATE PERCENTILE_DISC는 이산 분포 모델을 가정하는 역분포 함수로서 백분위 값과 정렬 명세를 가지며, 지정된 집합에서 요소를 반환합니다. 이 함수는 근사치를 사용하기 때문에 실행 속도가 더욱 빠르며 상대 오차도 약 0.5%로 낮습니다.

APPROXIMATE PERCENTILE_DISC는 임의의 percentile 값에 대해 사분위 요약 알고리즘을 사용하여 ORDER BY 절에서 표현식의 이산 백분위에 대한 근사치를 구합니다. 또한 동일한 정렬 명세와 관련하여 가장 작지만 percentile보다는 크거나 같은 누적 분포 값을 반환합니다.

구문

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

인수

Percentile

0과 1 사이의 숫자 상수입니다. 이 계산에서 Null 값은 무시됩니다.

WITHIN GROUP (ORDER BY expr)

숫자 또는 날짜/시간 값을 지정하여 백분위를 정렬 및 계산하는 절입니다.

반환 값

WITHIN GROUP 절의 ORDER BY 표현식과 동일한 데이터 형식

사용 노트

APPROXIMATE PERCENTILE_DISC 문에 GROUP BY 절이 포함된 경우에는 결과 집합이 제한적입니다. 이러한 제한은 노드 유형과 노드 수에 따라 달라집니다. 제한을 초과하면 함수가 중단되고 다음과 같은 오류를 반환합니다.

GROUP BY limit for approximate percentile_disc exceeded.

제한을 초과하여 더 많은 그룹을 평가해야 하는 경우에는 PERCENTILE_CONT 함수를 사용하는 것이 좋습니다.

다음은 상위 10개 날짜일 때 판매 수량과 총 판매액, 그리고 50번째 백분위 값을 반환하는 예입니다.

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00