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

> Точно вычисляет квантиль числовой последовательности с учётом веса каждого элемента.

# quantileExactWeighted

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

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

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

Чтобы получить точное значение, все переданные значения объединяются в массив, который затем частично сортируется.
Каждое значение учитывается с соответствующим весом, как будто оно встречается `weight` раз.
В алгоритме используется хеш-таблица.
Поэтому, если переданные значения часто повторяются, функция потребляет меньше оперативной памяти, чем [`quantileExact`](/ru/reference/functions/aggregate-functions/quantileExact#quantileExact).
Эту функцию можно использовать вместо `quantileExact`, указав вес 1.

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

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

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

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

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

* `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}
CREATE TABLE t (
    n Int32,
    val Int32
) ENGINE = Memory;

-- Вставить тестовые данные
INSERT INTO t VALUES
(0, 3),
(1, 2),
(2, 1),
(5, 4);

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

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

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

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