APPROX_PERCENTILE_COMBINE
백분위수 입력 상태를 단일 출력 상태로 결합(병합)합니다.
이를 통해, APPROX_PERCENTILE_ACCUMULATE 가 동일 테이블의 수평 파티션에 대해 실행되어 각 테이블 파티션에 대한 알고리즘 상태를 생성하는 시나리오가 가능해집니다. 이러한 상태는 나중에 APPROX_PERCENTILE_COMBINE 을 사용하여 결합되어, 전체 테이블에 대해 APPROX_PERCENTILE_ACCUMULATE 의 단일 실행과 동일한 출력 상태를 생성할 수 있습니다.
- 참고 항목:
APPROX_PERCENTILE_ACCUMULATE , APPROX_PERCENTILE_ESTIMATE
구문
APPROX_PERCENTILE_COMBINE( <state> )
예
testtable.c2 열에 있는 숫자의 중앙값에 대한 근삿값을 반환합니다(0.5는 50번째 백분위수를 의미함).
CREATE OR REPLACE TABLE mytesttable AS
SELECT APPROX_PERCENTILE_COMBINE(td) s FROM
(
(SELECT APPROX_PERCENTILE_ACCUMULATE(c2) td FROM testtable WHERE c2 <= 0)
UNION ALL
(SELECT APPROX_PERCENTILE_ACCUMULATE(c2) td FROM testtable WHERE c2 > 0 AND c2 <= 0.5)
UNION ALL
(SELECT APPROX_PERCENTILE_ACCUMULATE(C2) td FROM testtable WHERE c2 > 0.5)
);
SELECT APPROX_PERCENTILE_ESTIMATE(s , 0.5) FROM mytesttable;
mytest.s1 union mytest2.s2 에 있는 숫자의 두 번째 백분위수에 대한 대략적인 값을 반환합니다.
CREATE OR REPLACE TABLE mytest AS (SELECT APPROX_PERCENTILE_ACCUMULATE(c2) s1 FROM testtable WHERE c2 < 0);
CREATE OR REPLACE TABLE mytest2 AS (SELECT APPROX_PERCENTILE_ACCUMULATE(c2) s1 FROM testtable WHERE c2 >= 0);
CREATE OR REPLACE TABLE combinedtable AS
SELECT APPROX_PERCENTILE_COMBINE(s) combinedstate FROM
(
(SELECT s1 s FROM mytest)
UNION ALL
(SELECT s1 s FROM mytest2)
);
SELECT APPROX_PERCENTILE_ESTIMATE(combinedstate , 0.02) FROM combinedtable;
보다 광범위한 예는 APPROX_PERCENTILE_ACCUMULATE 의 예 섹션을 참조하십시오.