> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Calcule le nombre approximatif de valeurs distinctes de l’argument.

# uniq

<div id="uniq">
  ## uniq
</div>

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.

<Accordion title="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.
</Accordion>

<Tip>
  Nous recommandons d’utiliser cette fonction plutôt que d’autres variantes dans la quasi-totalité des cas.
</Tip>

**Syntaxe**

```sql theme={null}
uniq(x[, ...])
```

**Arguments**

* `x` — La fonction accepte un nombre variable de paramètres. [`Tuple(T)`](/fr/reference/data-types/tuple) ou [`Array(T)`](/fr/reference/data-types/array) ou [`Date`](/fr/reference/data-types/date) ou [`DateTime`](/fr/reference/data-types/datetime) ou [`String`](/fr/reference/data-types/string) ou [`(U)Int*`](/fr/reference/data-types/int-uint) ou [`Float*`](/fr/reference/data-types/float) ou [`Decimal`](/fr/reference/data-types/decimal)

**Valeur renvoyée**

Renvoie un nombre de type UInt64 représentant le nombre approximatif de valeurs distinctes. [`UInt64`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
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 title=Response theme={null}
┌─unique_categories─┐
│                 3 │
└───────────────────┘
```

**Arguments multiples**

```sql title=Query theme={null}
SELECT uniq(category, value) as unique_combinations
FROM example_table;
```

```response title=Response theme={null}
┌─unique_combinations─┐
│                   6 │
└─────────────────────┘
```

**Voir aussi**

* [uniqCombined](/fr/reference/functions/aggregate-functions/uniqCombined)
* [uniqCombined64](/fr/reference/functions/aggregate-functions/uniqCombined64)
* [uniqHLL12](/fr/reference/functions/aggregate-functions/uniqHLL12)
* [uniqExact](/fr/reference/functions/aggregate-functions/uniqExact)
* [uniqTheta](/fr/reference/functions/aggregate-functions/uniqthetasketch)
