Passer au contenu principal

uniqHLL12

Introduit dans : v1.1.0 Calcule le nombre approximatif de valeurs d’argument distinctes à l’aide de l’algorithme HyperLogLog.
Nous ne recommandons pas d’utiliser cette fonction. Dans la plupart des cas, utilisez la fonction uniq ou uniqCombined.
Cette fonction calcule un hachage pour tous les paramètres de l’agrégat, puis l’utilise pour les calculs. Elle utilise l’algorithme HyperLogLog pour estimer le nombre de valeurs d’argument distinctes.2^12 cellules de 5 bits sont utilisées. La taille de l’état est légèrement supérieure à 2,5 Ko. Le résultat n’est pas très précis (jusqu’à ~10 % d’erreur) pour les petits jeux de données (<10K éléments). En revanche, il est assez précis pour les jeux de données à cardinalité élevée (10K-100M), avec une erreur maximale d’environ 1,6 %. À partir de 100M, l’erreur d’estimation augmente, et la fonction renvoie des résultats très imprécis pour les jeux de données à cardinalité extrêmement élevée (1B+ éléments).Fournit un résultat déterministe (il ne dépend pas de l’ordre de traitement de la requête).
Syntaxe
uniqHLL12(x[, ...])
Arguments Valeur renvoyée Renvoie un nombre de type UInt64 représentant le nombre approximatif de valeurs d’argument distinctes. UInt64 Exemples Utilisation de base
Query
CREATE TABLE example_hll
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_hll VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqHLL12(category) AS hll_unique_categories
FROM example_hll;
Response
┌─hll_unique_categories─┐
│                     3 │
└───────────────────────┘
Voir aussi
Dernière modification le 29 juin 2026