> ## 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 o número aproximado de valores de argumento distintos. É o mesmo que uniqCombined, mas usa um hash de 64 bits para todos os tipos de dados, em vez de apenas para o tipo de dado String.

# uniqCombined64

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

Introduzido em: v20.1.0

Calcula o número aproximado de valores de argumento distintos.
É o mesmo que [`uniqCombined`](/pt-BR/reference/functions/aggregate-functions/uniqCombined), mas usa um hash de 64 bits para todos os tipos de dados, em vez de apenas para o tipo de dado String.

Esta função fornece o resultado de forma determinística (não depende da ordem de processamento da consulta).

<Note>
  Como usa hash de 64 bits para todos os tipos, o resultado não apresenta erro muito alto para cardinalidades significativamente maiores que `UINT_MAX`, como acontece com [`uniqCombined`](/pt-BR/reference/functions/aggregate-functions/uniqCombined), que usa um hash de 32 bits para tipos que não são String.
</Note>

Em comparação com a função [uniq](/pt-BR/reference/functions/aggregate-functions/uniq), a função uniqCombined64:

* Consome várias vezes menos memória
* Calcula com precisão várias vezes maior

<Accordion title="Detalhes de implementação">
  Esta função calcula um hash de 64 bits para todos os tipos de dados de todos os parâmetros da agregação e, em seguida, o usa nos cálculos.
  Ela usa uma combinação de três algoritmos: array, tabela hash e [HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog) com uma tabela de correção de erros:

  * Para um pequeno número de elementos distintos, usa-se um array
  * Quando o tamanho do conjunto é maior, usa-se uma tabela hash
  * Para um número maior de elementos, usa-se HyperLogLog, que ocupará uma quantidade fixa de memória
</Accordion>

**Sintaxe**

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

**Parâmetros**

* `HLL_precision` — Opcional. O logaritmo de base 2 do número de células no HyperLogLog. O valor padrão é 17, o que equivale, na prática, a 96 KiB de espaço (2^17 células, 6 bits cada). Intervalo: \[12, 20]. [`UInt8`](/pt-BR/reference/data-types/int-uint)

**Argumentos**

* `x` — Um número variável de argumentos. [`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 o número aproximado de valores de argumento distintos. [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo com grande volume de dados**

```sql title=Query theme={null}
SELECT uniqCombined64(number) FROM numbers(1e10);
```

```response title=Response theme={null}
┌─uniqCombined64(number)─┐
│             9998568925 │
└────────────────────────┘
```

**Comparação com uniqCombined**

```sql title=Query theme={null}
-- uniqCombined64 com conjunto de dados grande
SELECT uniqCombined64(number) FROM numbers(1e10);

-- uniqCombined com o mesmo conjunto de dados apresenta aproximação ruim
SELECT uniqCombined(number) FROM numbers(1e10);
```

```response title=Response theme={null}
┌─uniqCombined64(number)─┐
│             9998568925 │ -- 10,00 bilhões
└────────────────────────┘
┌─uniqCombined(number)─┐
│           5545308725 │ -- 5,55 bilhões
└──────────────────────┘
```

**Veja também**

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