> ## 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.

> Calcula o número aproximado de valor distinto do argumento, usando o algoritmo HyperLogLog.

# uniqHLL12

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

Introduzido em: v1.1.0

Calcula o número aproximado de valores distintos do argumento usando o algoritmo [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog).

<Warning>
  Não recomendamos usar esta função. Na maioria dos casos, use a função [uniq](/pt-BR/reference/functions/aggregate-functions/uniq) ou [uniqCombined](/pt-BR/reference/functions/aggregate-functions/uniqCombined).
</Warning>

<Accordion title="Detalhes de implementação">
  Esta função calcula um hash para todos os parâmetros na agregação e depois o usa nos cálculos.
  Ela usa o algoritmo HyperLogLog para aproximar o número de valores distintos do argumento.

  São usadas 2^12 células de 5 bits.
  O tamanho do estado é ligeiramente maior que 2,5 KB.
  O resultado não é muito preciso (até \~10% de erro) para conjuntos de dados pequenos (\<10K elementos).
  No entanto, o resultado é bastante preciso para conjuntos de dados com alta cardinalidade (10K-100M), com erro máximo de \~1,6%.
  A partir de 100M, o erro de estimativa aumenta, e a função retornará resultados muito imprecisos para conjuntos de dados com cardinalidade extremamente alta (1B+ elementos).

  Fornece um resultado determinístico (não depende da ordem de processamento da consulta).
</Accordion>

**Sintaxe**

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

**Argumentos**

* `x` — A função aceita um número variável de parâmetros. [`Tuple(T)`](/pt-BR/reference/data-types/tuple) ou [`Array(T)`](/pt-BR/reference/data-types/array) ou [`Date`](/pt-BR/reference/data-types/date) ou [`DateTime`](/pt-BR/reference/data-types/datetime) ou [`String`](/pt-BR/reference/data-types/string) ou [`(U)Int*`](/pt-BR/reference/data-types/int-uint) ou [`Float*`](/pt-BR/reference/data-types/float) ou [`Decimal`](/pt-BR/reference/data-types/decimal)

**Valor retornado**

Retorna um número do tipo UInt64 que representa a quantidade aproximada de valores de argumento distintos. [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

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

**Veja também**

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