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

> Вычисляет приблизительное количество различных значений аргумента.

# uniq

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

Добавленный в: v1.1.0

Вычисляет приблизительное количество различных значений аргумента.

Функция использует алгоритм адаптивного сэмплирования. Для хранения состояния вычислений функция использует выборку хеш-значений элементов размером до 65536. Этот алгоритм очень точен и при этом очень эффективен по нагрузке на CPU. Если запрос содержит несколько таких функций, `uniq` работает почти так же быстро, как и другие агрегатные функции.

<Accordion title="Подробности реализации">
  Эта функция вычисляет хеш для всех параметров агрегирования, а затем использует его в вычислениях.
  Она использует алгоритм адаптивного сэмплирования.
  Для хранения состояния вычислений функция использует выборку хеш-значений элементов размером до 65536.
  Этот алгоритм очень точен и при этом очень эффективен по нагрузке на CPU.
  Если запрос содержит несколько таких функций, `uniq` работает почти так же быстро, как и другие агрегатные функции.
</Accordion>

<Tip>
  Мы рекомендуем использовать эту функцию вместо других вариантов почти во всех случаях.
</Tip>

**Синтаксис**

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

**Аргументы**

* `x` — Функция принимает переменное количество параметров. [`Tuple(T)`](/ru/reference/data-types/tuple) или [`Array(T)`](/ru/reference/data-types/array) или [`Date`](/ru/reference/data-types/date) или [`DateTime`](/ru/reference/data-types/datetime) или [`String`](/ru/reference/data-types/string) или [`(U)Int*`](/ru/reference/data-types/int-uint) или [`Float*`](/ru/reference/data-types/float) или [`Decimal`](/ru/reference/data-types/decimal)

**Возвращаемое значение**

Возвращает число типа UInt64, представляющее приблизительное количество различных значений. [`UInt64`](/ru/reference/data-types/int-uint)

**Примеры**

**Пример использования**

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

**Несколько аргументов**

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

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

**См. также**

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