uniq
Introduit dans : v1.1.0
Calcule le nombre approximatif de valeurs distinctes de l’argument.
La fonction utilise un algorithme d’échantillonnage adaptatif. Pour l’état de calcul, la fonction utilise un échantillon pouvant contenir jusqu’à 65536 valeurs de hachage d’éléments. Cet algorithme est très précis et très efficace en termes d’utilisation du CPU. Lorsque la requête contient plusieurs de ces fonctions, l’utilisation de uniq est presque aussi rapide que celle d’autres fonctions d’agrégation.
Détails d’implémentation
Cette fonction calcule un hash pour tous les paramètres de l’agrégat, puis l’utilise dans les calculs.
Elle utilise un algorithme d’échantillonnage adaptatif.
Pour l’état de calcul, la fonction utilise un échantillon pouvant contenir jusqu’à 65536 valeurs de hachage d’éléments.
Cet algorithme est très précis et très efficace en termes d’utilisation du CPU.
Lorsque la requête contient plusieurs de ces fonctions, l’utilisation de uniq est presque aussi rapide que celle d’autres fonctions d’agrégation.
Syntaxe
uniq(x[, ...])Arguments
x— La fonction accepte un nombre variable de paramètres.Tuple(T)ouArray(T)ouDateouDateTimeouStringou(U)Int*ouFloat*ouDecimal
Valeur renvoyée
Renvoie un nombre de type UInt64 représentant le nombre approximatif de valeurs distinctes. UInt64
Exemples
Exemple d'utilisation
CREATE TABLE example_table (
id UInt32,
category String,
value Float64
) ENGINE = Memory;
INSERT INTO example_table VALUES
(1, 'A', 10.5),
(2, 'B', 20.3),
(3, 'A', 15.7),
(4, 'C', 8.9),
(5, 'B', 12.1),
(6, 'A', 18.4);
SELECT uniq(category) as unique_categories
FROM example_table;┌─unique_categories─┐
│ 3 │
└───────────────────┘Arguments multiples
SELECT uniq(category, value) as unique_combinations
FROM example_table;┌─unique_combinations─┐
│ 6 │
└─────────────────────┘Voir aussi