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

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

# quantileExactWeightedInterpolated

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

Добавленный в: v24.10.0

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

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

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

Мы настоятельно рекомендуем использовать `quantileExactWeightedInterpolated` вместо `quantileInterpolatedWeighted`, поскольку `quantileExactWeightedInterpolated` точнее, чем `quantileInterpolatedWeighted`.
Подробнее см. в примере ниже.

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

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

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

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

* `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)
* `weight` — Столбец с весами элементов последовательности. Вес — это число вхождений значения. [`UInt*`](/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}
SELECT quantileExactWeightedInterpolated(n, val) FROM t;
```

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

**Предпочитайте quantileExactWeightedInterpolated вместо quantileInterpolatedWeighted**

```sql title=Query theme={null}
SELECT
    quantileExactWeightedInterpolated(0.99)(number, 1),
    quantile(0.99)(number),
    quantileInterpolatedWeighted(0.99)(number, 1)
FROM numbers(9)
```

```response title=Response theme={null}
┌─quantileExactWeightedInterpolated(0.99)(number, 1)─┬─quantile(0.99)(number)─┬─quantileInterpolatedWeighted(0.99)(number, 1)─┐
│                                               7.92 │                   7.92 │                                             8 │
└────────────────────────────────────────────────────┴────────────────────────┴───────────────────────────────────────────────┘
```

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

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