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

> Calcula el número aproximado de distintos valores del argumento mediante el algoritmo HyperLogLog.

# uniqHLL12

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

Introducido en: v1.1.0

Calcula el número aproximado de valores distintos del argumento mediante el algoritmo [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog).

<Warning>
  No recomendamos usar esta función. En la mayoría de los casos, utilice la función [uniq](/es/reference/functions/aggregate-functions/uniq) o [uniqCombined](/es/reference/functions/aggregate-functions/uniqCombined).
</Warning>

<Accordion title="Detalles de implementación">
  Esta función calcula un hash para todos los parámetros de la función de agregado y luego lo usa en los cálculos.
  Utiliza el algoritmo HyperLogLog para aproximar el número de valores distintos del argumento.

  Se utilizan 2^12 celdas de 5 bits.
  El tamaño del estado es ligeramente superior a 2,5 KB.
  El resultado no es muy preciso (hasta \~10% de error) para conjuntos de datos pequeños (\<10K elementos).
  Sin embargo, el resultado es bastante preciso para conjuntos de datos con alta cardinalidad (10K-100M), con un error máximo de \~1,6%.
  A partir de 100M, el error de estimación aumenta y la función devolverá resultados muy imprecisos para conjuntos de datos con cardinalidad extremadamente alta (1B+ elementos).

  Proporciona un resultado determinista (no depende del orden de procesamiento de la consulta).
</Accordion>

**Sintaxis**

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

**Argumentos**

* `x` — La función acepta un número variable de parámetros. [`Tuple(T)`](/es/reference/data-types/tuple) o [`Array(T)`](/es/reference/data-types/array) o [`Date`](/es/reference/data-types/date) o [`DateTime`](/es/reference/data-types/datetime) o [`String`](/es/reference/data-types/string) o [`(U)Int*`](/es/reference/data-types/int-uint) o [`Float*`](/es/reference/data-types/float) o [`Decimal`](/es/reference/data-types/decimal)

**Valor devuelto**

Devuelve un número de tipo UInt64 que representa el número aproximado de valores distintos de los argumentos. [`UInt64`](/es/reference/data-types/int-uint)

**Ejemplos**

**Uso básico**

```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 │
└───────────────────────┘
```

**Ver también**

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