Categorias:

Funções de agregação (Estimativa percentual) , Funções de janela

APPROX_PERCENTILE_COMBINE

Combina (funde) os estados de entrada percentual em apenas um estado de saída.

Isto permite cenários onde APPROX_PERCENTILE_ACCUMULATE é executado sobre partições horizontais da mesma tabela, produzindo um estado de algoritmo para cada partição da tabela. Estes estados podem ser combinados mais tarde usando APPROX_PERCENTILE_COMBINE, produzindo o mesmo estado de saída que uma única execução de APPROX_PERCENTILE_ACCUMULATE sobre toda a tabela.

Consulte também:

APPROX_PERCENTILE_ACCUMULATE , APPROX_PERCENTILE_ESTIMATE

Sintaxe

APPROX_PERCENTILE_COMBINE( <state> )
Copy

Argumentos

state

Uma expressão que contém informações de estado geradas por uma chamada para APPROX_PERCENTILE_ACCUMULATE.

Exemplo

Retornar uma aproximação para a mediana dos números na coluna testtable.c2 (0,5 significa o percentual 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

Retornar um valor aproximado para o 2º percentual de números em 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

Para obter um exemplo mais extenso, consulte a seção Exemplos em APPROX_PERCENTILE_ACCUMULATE.