- Categorias:
Funções de agregação (Cardinality Estimation) , Funções de janela
HLL¶
Utiliza HyperLogLog para retornar uma aproximação da cardinalidade distinta da entrada (isto é, HLL(col1, col2, ... )
devolve uma aproximação de COUNT(DISTINCT col1, col2, ... )
).
Para obter mais informações sobre HyperLogLog, consulte Estimativa do número de valores distintos.
- Aliases:
- Consulte também:
Sintaxe¶
Função de agregação
HLL( [ DISTINCT ] <expr1> [ , ... ] )
HLL(*)
Função de janela
HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
HLL(*) OVER ( [ PARTITION BY <expr2> ] )
Argumentos¶
expr1
Esta é a expressão pela qual você quer saber o número de valores distintos.
expr2
Esta é a expressão opcional usada para agrupar linhas em partições.
Retornos¶
O tipo de dados do valor retornado é INTEGER.
Notas de uso¶
DISTINCT
pode ser incluído como um argumento, mas não tem efeito.Para obter mais informações sobre valores NULL e funções agregadas, consulte Funções de agregação e valores NULL.
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¶
Este exemplo mostra como usar HLL e seu alias APPROX_COUNT_DISTINCT. Este exemplo chama tanto COUNT(DISTINCT i)
quanto APPROX_COUNT_DISTINCT(i)
para enfatizar que os resultados nem sempre coincidem exatamente.
A saída exata da consulta seguinte pode variar porque APPROX_COUNT_DISTINCT() retorna uma aproximação, não um valor exato.
SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i) FROM sequence_demo;