- Catégories :
Fonctions d’agrégation (estimation de la cardinalité), Fonctions de la fenêtre
APPROX_COUNT_DISTINCT¶
Utilise HyperLogLog pour obtenir une approximation de la cardinalité distincte de l’entrée (c’est-à-dire que HLL(col1, col2, ... )
renvoie une approximation de COUNT(DISTINCT col1, col2, ... )
).
Pour plus d’informations sur les HyperLogLog, voir Le nombre de valeurs distinctes..
- Alias :
HLL.
- Voir aussi :
Syntaxe¶
Fonction d’agrégation
APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1> [ , ... ] )
APPROX_COUNT_DISTINCT(*)
Fonction de fenêtre
APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
APPROX_COUNT_DISTINCT(*) OVER ( [ PARTITION BY <expr2> ] )
Arguments¶
expr1
C’est l’expression pour laquelle vous voulez connaître le nombre de valeurs distinctes.
expr2
Il s’agit de l’expression facultative utilisée pour grouper des lignes dans des partitions.
Renvoie¶
Le type de données de la valeur renvoyée est INTEGER.
Notes sur l’utilisation¶
Bien que le calcul soit une approximation, il est déterministe. Lorsque cette fonction est appelée avec les mêmes données d’entrée, elle renvoie les mêmes résultats.
Pour plus d’informations sur les valeurs NULL et les fonctions d’agrégation, voir Fonctions d’agrégation et valeurs NULL.
Dans le cas d’une utilisation en tant que fonction de fenêtre :
Cette fonction ne prend pas en charge :
Sous-clause ORDER BY dans la clause OVER().
Cadres de fenêtre.
Exemples¶
This example shows how to use APPROX_COUNT_DISTINCT and its alias HLL. This example calls
both COUNT(DISTINCT i)
and APPROX_COUNT_DISTINCT(i)
to emphasize
that the results of those two functions do not always match exactly.
The exact output of the following query might vary because APPROX_COUNT_DISTINCT() returns an approximation, not an exact value.
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 | +----------+-------------------+--------------------------+--------+