Compartir a través de


approx_count_distinct (función de agregado)

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Devuelve el número estimado de valores distintos en expr dentro del grupo.

La implementación utiliza la versión densa del algoritmo HyperLogLog++ (HLL++), un algoritmo de estimación de cardinalidad de última generación.

Los resultados son precisos dentro de un valor predeterminado del 5 %, que se deriva del valor de la desviación estándar relativa máxima, aunque esto se puede configurar con el parámetro relativeSD que se menciona a continuación.

Sintaxis

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

Esta función también se puede invocar como una función de ventana mediante la cláusula OVER.

Argumentos

  • expr: puede ser de cualquier tipo para el que se defina la equivalencia.
  • relativeSD: define la desviación estándar relativa máxima permitida.
  • cond: una expresión booleana opcional que filtra las filas usadas para la agregación.

Devoluciones

Valor BIGINT.

Ejemplos

> 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