Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

uniq

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

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

Navigation