Função de agregação approx_percentile
Aplica-se a: SQL do Databricks Runtime do Databricks
Retorna o percentil aproximado de expr
dentro do grupo.
Sintaxe
approx_percentile ( [ALL | DISTINCT] expr, percentile [, accuracy] ) [ FILTER ( WHERE cond ) ]
Essa função também pode ser invocada como uma função de janela usando a cláusula OVER
.
Argumentos
expr
: uma expressão numérica.percentile
: um literal numérico entre 0 e 1 ou uma matriz literal de valores numéricos, cada um entre 0 e 1.accuracy
: umINTEGER
literal maior que 0. Se a precisão for omitida, ela será definida como 10.000.cond
: uma expressão booliana opcional que filtra as linhas usadas para agregação.
Retornos
A função de agregação retorna a expressão que é o menor valor no grupo ordenado (classificado do menor para o maior), de modo que não mais que percentile
de expr
valores seja menor ou igual a esse valor.
Se percentile
for uma matriz, approx_percentile
retornará a matriz percentual aproximada de expr
em percentile
.
O parâmetro accuracy
controla a precisão da aproximação no custo da memória.
O valor mais alto de precisão gera uma melhor precisão, 1.0/accuracy
é o erro relativo da aproximação.
Essa função é um sinônimo da função de agregação percentile_approx.
Se DISTINCT
for especificado, a função só vai operar em um conjunto exclusivo de valores expr
.
Exemplos
> SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
[1,1,0]
> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
6
> SELECT approx_percentile(DISTINCT col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
7