APPROX_PERCENTILE_COMBINE¶
백분위수 입력 상태를 단일 출력 상태로 결합(병합)합니다.
이를 통해, APPROX_PERCENTILE_ACCUMULATE 가 동일 테이블의 수평 파티션에 대해 실행되어 각 테이블 파티션에 대한 알고리즘 상태를 생성하는 시나리오가 가능해집니다. 이러한 상태는 나중에 APPROX_PERCENTILE_COMBINE 을 사용하여 결합되어, 전체 테이블에 대해 APPROX_PERCENTILE_ACCUMULATE 의 단일 실행과 동일한 출력 상태를 생성할 수 있습니다.
구문¶
APPROX_PERCENTILE_COMBINE( <state> )
인자¶
state
APPROX_PERCENTILE_ACCUMULATE 호출에 의해 생성된 상태 정보를 포함하는 식입니다.
예¶
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 의 예 섹션을 참조하십시오.