- Categorias:
Funções de agregação (Estimativa de cardinalidade) , 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 usado como uma função de janela:
Esta função não oferece suporte para:
Subcláusula ORDER BY na cláusula OVER().
Quadros de janela.
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; +----------+-------------------+--------------------------+--------+ | COUNT(I) | COUNT(DISTINCT I) | APPROX_COUNT_DISTINCT(I) | HLL(I) | |----------+-------------------+--------------------------+--------| | 1024 | 1024 | 1007 | 1007 | +----------+-------------------+--------------------------+--------+