- Categorias:
- Funções de agregação (Percentile Estimation) , Funções de janela 
APPROX_PERCENTILE¶
Retorna um valor aproximado para o percentil desejado (ou seja, se a coluna c tiver n números, APPROX_PERCENTILE(c, p) retorna um número tal que aproximadamente n * p dos números em c são menores que o número retornado).
Esta função usa uma versão melhorada do algoritmo t-Digest. Para obter mais informações, consulte Estimativa de valores percentuais.
- Consulte também:
- APPROX_PERCENTILE_ACCUMULATE , APPROX_PERCENTILE_COMBINE , APPROX_PERCENTILE_ESTIMATE 
Sintaxe¶
Função de agregação
APPROX_PERCENTILE( <expr> , <percentile> )
Função de janela
APPROX_PERCENTILE( <expr> , <percentile> ) OVER ( [ PARTITION BY <expr3> ] )
Argumentos¶
- expr
- Uma expressão válida, como o nome de uma coluna, que avalia como um valor numérico. 
- percentile
- Um valor real constante maior ou igual a - 0.0e menor que- 1.0. Isto indica o percentual (de 0 a 99,999….). Por exemplo O valor 0,65 indica o percentual 65.
- expr3
- Esta é a expressão opcional usada para agrupar linhas em partições. 
Retornos¶
A saída é retornada como um valor DOUBLE.
Notas de uso¶
- O percentual funciona apenas em valores numéricos, portanto - exprdeve produzir valores que são números ou podem ser convertidos em números.
- Os valores retornados não estão necessariamente no conjunto de dados. 
- O valor retornado é uma aproximação. O tamanho do conjunto de dados e a assimetria no conjunto de dados afetam a precisão da aproximação. 
- Quando esta função é chamada como uma função de janela, ela não oferece suporte para: - Uma cláusula ORDER BY dentro da cláusula OVER. 
- Quadros de janela explícitos. 
 
Exemplos¶
Demonstrar a função APPROX_PERCENTILE:
Criar e preencher uma tabela com valores:
CREATE TABLE testtable (c1 INTEGER); INSERT INTO testtable (c1) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Executar consultas e mostrar a saída:
SELECT APPROX_PERCENTILE(c1, 0.1) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.1) | |----------------------------| | 1.5 | +----------------------------+SELECT APPROX_PERCENTILE(c1, 0.5) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.5) | |----------------------------| | 5.5 | +----------------------------+
Observe que o valor retornado neste caso é maior do que qualquer valor atualmente no conjunto de dados:
SELECT APPROX_PERCENTILE(c1, 0.999) FROM testtable; +------------------------------+ | APPROX_PERCENTILE(C1, 0.999) | |------------------------------| | 10.5 | +------------------------------+