Passer au contenu principal

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.
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.
Nous recommandons d’utiliser cette fonction plutôt que d’autres variantes dans la quasi-totalité des cas.
Syntaxe
uniq(x[, ...])
Arguments Valeur renvoyée Renvoie un nombre de type UInt64 représentant le nombre approximatif de valeurs distinctes. UInt64 Exemples Exemple d’utilisation
Query
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;
Response
┌─unique_categories─┐
│                 3 │
└───────────────────┘
Arguments multiples
Query
SELECT uniq(category, value) as unique_combinations
FROM example_table;
Response
┌─unique_combinations─┐
│                   6 │
└─────────────────────┘
Voir aussi
Dernière modification le 29 juin 2026