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

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

# quantileDeterministic

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

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

Вычисляет приблизительный [квантиль](https://en.wikipedia.org/wiki/Quantile) числовой последовательности данных.

Эта функция использует [резервуарное сэмплирование](https://en.wikipedia.org/wiki/Reservoir_sampling) с размером резервуара до 8192 и детерминированным алгоритмом сэмплирования.
Результат является детерминированным.
Чтобы получить точный квантиль, используйте функцию [`quantileExact`](/ru/reference/functions/aggregate-functions/quantileExact#quantileExact).

При использовании в запросе нескольких функций `quantile*` с разными уровнями их внутренние состояния не объединяются (то есть запрос работает менее эффективно, чем мог бы).
В этом случае используйте функцию [`quantiles`](/ru/reference/functions/aggregate-functions/quantiles#quantiles).

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

```sql theme={null}
quantileDeterministic(level)(expr, determinator)
```

**Псевдонимы**: `medianDeterministic`

**Параметры**

* `level` — Необязательный параметр. Уровень квантиля. Константное число с плавающей точкой от 0 до 1. Рекомендуется использовать значение `level` в диапазоне `[0.01, 0.99]`. Значение по умолчанию: 0.5. При `level=0.5` функция вычисляет медиану. [`Float*`](/ru/reference/data-types/float)

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

* `expr` — Выражение над значениями столбца, результатом которого являются числовые типы данных, Date или DateTime. [`(U)Int*`](/ru/reference/data-types/int-uint) или [`Float*`](/ru/reference/data-types/float) или [`Decimal*`](/ru/reference/data-types/decimal) или [`Date`](/ru/reference/data-types/date) или [`DateTime`](/ru/reference/data-types/datetime)
* `determinator` — Число, хеш которого используется вместо генератора случайных чисел в алгоритме резервуарного сэмплирования, чтобы сделать результат сэмплирования детерминированным. В качестве `determinator` можно использовать любое детерминированное положительное число, например идентификатор пользователя или события. Если одно и то же значение `determinator` встречается слишком часто, функция работает некорректно. [`(U)Int*`](/ru/reference/data-types/int-uint)

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

Возвращает приблизительный квантиль указанного уровня. [`Float64`](/ru/reference/data-types/float) или [`Date`](/ru/reference/data-types/date) или [`DateTime`](/ru/reference/data-types/datetime)

**Примеры**

**Вычисление детерминированного квантиля**

```sql title=Query theme={null}
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);

SELECT quantileDeterministic(val, 1) FROM t;
```

```response title=Response theme={null}
┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘
```

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

* [median](/ru/reference/functions/aggregate-functions/median)
* [quantiles](/ru/reference/functions/aggregate-functions/quantiles)
