> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK

# Функции quantiles

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

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

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

Эта функция использует [резервуарное сэмплирование](https://en.wikipedia.org/wiki/Reservoir_sampling) с размером резервуара до 8192 и генератор случайных чисел для сэмплирования.
Результат является недетерминированным.

Использовать `quantiles` эффективнее, чем вызывать несколько отдельных функций `quantile`, если требуется несколько значений квантилей, поскольку все квантили вычисляются за один проход по данным.

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

```sql theme={null}
quantiles(level1, level2, ...)(expr)
```

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

* `level` — Уровни квантилей. Одно или несколько постоянных чисел с плавающей запятой в диапазоне от 0 до 1. Рекомендуется использовать значения `level` из диапазона `[0.01, 0.99]`. [`Float*`](/docs/ru/reference/data-types/float)

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

* `expr` — Выражение над значениями столбца, результатом вычисления которого являются числовые типы данных, `Date`, `DateTime` или `DateTime64`. [`(U)Int*`](/docs/ru/reference/data-types/int-uint) или [`Int128`](/docs/ru/reference/data-types/int-uint) или [`UInt128`](/docs/ru/reference/data-types/int-uint) или [`Int256`](/docs/ru/reference/data-types/int-uint) или [`UInt256`](/docs/ru/reference/data-types/int-uint) или [`Float*`](/docs/ru/reference/data-types/float) или [`Decimal*`](/docs/ru/reference/data-types/decimal) или [`Date`](/docs/ru/reference/data-types/date) или [`DateTime`](/docs/ru/reference/data-types/datetime) или [`DateTime64`](/docs/ru/reference/data-types/datetime64)

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

Массив приближённых квантилей указанных уровней в том же порядке, в котором эти уровни были заданы. Для числовых аргументов возвращается `Float64`, а для аргументов `Decimal`, `Date`, `DateTime` и `DateTime64` сохраняется их исходный формат. [`Array(Float64)`](/docs/ru/reference/data-types/array) или [`Array(Decimal*)`](/docs/ru/reference/data-types/array) или [`Array(Date)`](/docs/ru/reference/data-types/array) или [`Array(DateTime)`](/docs/ru/reference/data-types/array) или [`Array(DateTime64)`](/docs/ru/reference/data-types/array)

**Примеры**

**Эффективное вычисление нескольких квантилей**

```sql title=Query theme={null}
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);

SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;
```

```response title=Response theme={null}
┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [3, 5.5, 8, 9.5]                     │
└──────────────────────────────────────┘
```
