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

> Вычисляет квантиль числовой последовательности с помощью линейной интерполяции, с учётом веса каждого элемента.

# quantileInterpolatedWeighted

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

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

Вычисляет [квантиль](https://en.wikipedia.org/wiki/Quantile) числовой последовательности с помощью линейной интерполяции с учетом веса каждого элемента.

Чтобы получить интерполированное значение, все переданные значения объединяются в массив, а затем сортируются по соответствующим весам.
После этого интерполяция квантиля выполняется с использованием [метода взвешенных процентилей](https://en.wikipedia.org/wiki/Percentile#The_weighted_percentile_method): строится накопленное распределение на основе весов, затем с помощью весов и значений выполняется линейная интерполяция для вычисления квантилей.

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

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

```sql theme={null}
quantileInterpolatedWeighted(level)(expr, weight)
```

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

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

* `level` — Необязательный параметр. Уровень квантиля. Константное число с плавающей запятой от 0 до 1. Рекомендуется использовать значение `level` в диапазоне `[0.01, 0.99]`. Значение по умолчанию: 0.5. При `level=0.5` функция вычисляет медиану. [`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)
* `weight` — Столбец с весами элементов последовательности. Вес — это число вхождений значения. [`UInt*`](/docs/ru/reference/data-types/int-uint)

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

Квантиль указанного уровня. Для числовых типов данных выходной формат совпадает с входным форматом. [`(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)

**Примеры**

**Вычисление интерполированного взвешенного квантиля**

```sql title=Query theme={null}
CREATE TABLE t (
    n Int32,
    val Int32
) ENGINE = Memory;

INSERT INTO t VALUES (0, 3), (1, 2), (2, 1), (5, 4);

SELECT quantileInterpolatedWeighted(n, val) FROM t;
```

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

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

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