> ## 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 valores distintos do argumento.

# uniq

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

Introduzido em: v1.1.0

Calcula o número aproximado de valores distintos do argumento.

A função usa um algoritmo de amostragem adaptativa. Para o estado de cálculo, a função usa uma amostra de valores de hash de elementos de até 65536. Esse algoritmo é muito preciso e muito eficiente no uso da CPU. Quando a consulta contém várias dessas funções, usar uniq é quase tão rápido quanto usar outras funções de agregação.

<Accordion title="Detalhes de implementação">
  Esta função calcula um hash para todos os parâmetros da agregação e depois o usa nos cálculos.
  Ela usa um algoritmo de amostragem adaptativa.
  Para o estado de cálculo, a função usa uma amostra de valores de hash de elementos de até 65536.
  Esse algoritmo é muito preciso e muito eficiente no uso da CPU.
  Quando a consulta contém várias dessas funções, usar `uniq` é quase tão rápido quanto usar outras funções de agregação.
</Accordion>

<Tip>
  Recomendamos usar esta função em vez de outras variantes em quase todos os cenários.
</Tip>

**Sintaxe**

```sql theme={null}
uniq(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 o número aproximado de valores distintos. [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

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

**Vários argumentos**

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

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

**Veja também**

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