- Catégories :
Fonctions d’agrégation (estimation de la cardinalité), Fonctions de la fenêtre
HLL¶
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 HyperLogLog, voir Estimation du nombre de valeurs distinctes.
- Alias :
- Voir aussi :
Syntaxe¶
Fonction d’agrégation
HLL( [ DISTINCT ] <expr1> [ , ... ] )
HLL(*)
Fonction de fenêtre
HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
HLL(*) 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¶
DISTINCT
peut être inclus comme argument, mais n’a aucun effet.Pour plus d’informations sur les valeurs NULL et les fonctions d’agrégation, voir Fonctions d’agrégation et valeurs NULL.
Lorsqu’il est utilisé comme une fonction de fenêtre :
Cette fonction ne prend pas en charge :
Sous-clause ORDER BY dans la clause OVER().
Cadres de fenêtre.
Exemples¶
Cet exemple montre comment utiliser HLL et son alias APPROX_COUNT_DISTINCT. Cet exemple appelle COUNT(DISTINCT i)
et APPROX_COUNT_DISTINCT(i)
pour souligner que les résultats ne correspondent pas toujours exactement.
SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i) FROM sequence_demo;Sortie :
Les résultats peuvent varier, car APPROX_COUNT_DISTINCT() renvoie une approximation, pas une valeur exacte.
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 | 1030 | 1030 | +----------+-------------------+--------------------------+--------+