카테고리:

집계 함수 (백분위수 추정) , 윈도우 함수

APPROX_PERCENTILE_COMBINE

백분위수 입력 상태를 단일 출력 상태로 결합(병합)합니다.

이를 통해, APPROX_PERCENTILE_ACCUMULATE 가 동일 테이블의 수평 파티션에 대해 실행되어 각 테이블 파티션에 대한 알고리즘 상태를 생성하는 시나리오가 가능해집니다. 이러한 상태는 나중에 APPROX_PERCENTILE_COMBINE 을 사용하여 결합되어, 전체 테이블에 대해 APPROX_PERCENTILE_ACCUMULATE 의 단일 실행과 동일한 출력 상태를 생성할 수 있습니다.

참고 항목:

APPROX_PERCENTILE_ACCUMULATE , APPROX_PERCENTILE_ESTIMATE

구문

APPROX_PERCENTILE_COMBINE( <state> )
Copy

인자

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;
Copy

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;
Copy

보다 광범위한 예는 APPROX_PERCENTILE_ACCUMULATE 의 예 섹션을 참조하십시오.