Compartilhar via


Função de agregação approx_count_distinct

Aplica-se a: marca de seleção positiva SQL do Databricks marca de seleção positiva Runtime do Databricks

Retorna o número estimado de valores distintos em expr no grupo.

A implementação usa a versão densa do algoritmo HyperLogLog++ (HLL++), um algoritmo de estimativa de cardinalidade de última geração.

Os resultados são precisos dentro de um valor padrão de 5% que deriva do valor do desvio padrão relativo máximo, embora isso seja configurável com o parâmetro relativeSD conforme mencionado abaixo.

Sintaxe

approx_count_distinct(expr[, relativeSD]) [FILTER ( WHERE cond ) ]

Essa função também pode ser invocada como uma função de janela usando a cláusula OVER.

Argumentos

  • expr: pode ser de qualquer tipo para o qual a equivalência seja definida.
  • relativeSD: define o desvio padrão relativo máximo permitido.
  • cond: uma expressão booliana opcional que filtra as linhas usadas para agregação.

Retornos

Um BIGINT.

Exemplos

> SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1);
 3

> SELECT approx_count_distinct(col1) FILTER(WHERE col2 = 10)
    FROM VALUES (1, 10), (1, 10), (2, 10), (2, 10), (3, 10), (1, 12) AS tab(col1, col2);
 3