> ## 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 d'argument distinctes à l'aide de l'algorithme HyperLogLog.

# uniqHLL12

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

Introduit dans : v1.1.0

Calcule le nombre approximatif de valeurs d’argument distinctes à l’aide de l’algorithme [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog).

<Warning>
  Nous ne recommandons pas d’utiliser cette fonction. Dans la plupart des cas, utilisez la fonction [uniq](/fr/reference/functions/aggregate-functions/uniq) ou [uniqCombined](/fr/reference/functions/aggregate-functions/uniqCombined).
</Warning>

<Accordion title="Détails d’implémentation">
  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).
</Accordion>

**Syntaxe**

```sql theme={null}
uniqHLL12(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 d’argument distinctes. [`UInt64`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

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

**Voir aussi**

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