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:

APPROX_COUNT_DISTINCT.

Consulte também:

HLL_ACCUMULATE , HLL_COMBINE , HLL_ESTIMATE

Sintaxe

Função de agregação

HLL( [ DISTINCT ] <expr1> [ , ... ] )

HLL(*)
Copy

Função de janela

HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )

HLL(*) OVER ( [ PARTITION BY <expr2> ] )
Copy

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 |
+----------+-------------------+--------------------------+--------+
Copy