Partager via


Fonction d’agrégation approx_count_distinct

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne le nombre estimé de valeurs distinctes dans expr au sein du groupe.

L’implémentation utilise la version dense de l’algorithme HyperLogLog++ (HLL++), un algorithme d’estimation de cardinalité de pointe.

Les résultats sont exacts dans une valeur par défaut de 5 %, qui dérive de la valeur de l’écart type relatif maximal, bien que cela soit configurable avec le paramètre relativeSD comme indiqué ci-dessous.

Syntaxe

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

Cette fonction peut également être appelée en tant que fonction de fenêtre à l’aide de la clause OVER.

Arguments

  • expr: Peut être de n’importe quel type pour lequel l’équivalence est définie.
  • relativeSD: Définit l’écart type relatif maximal autorisé.
  • cond : expression booléenne facultative qui filtre les lignes utilisées pour l’agrégation.

Retours

Une valeur BIGINT.

Exemples

> 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