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

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

# quantileTimingWeighted

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

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

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

Результат детерминирован (не зависит от порядка обработки запроса). Функция оптимизирована для работы с последовательностями, описывающими распределения, такие как время загрузки веб-страниц или время отклика backend-соединения.

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

**Точность**

Вычисление является точным, если:

* Общее количество значений не превышает 5670.
* Общее количество значений превышает 5670, но время загрузки страницы меньше 1024 мс.

В противном случае результат вычисления округляется до ближайшего значения, кратного 16 мс.

<Note>
  Для вычисления квантилей времени загрузки страницы эта функция эффективнее и точнее, чем [`quantile`](/ru/reference/functions/aggregate-functions/quantile).
</Note>

<Note>
  Если в функцию не переданы значения (при использовании `quantileTimingIf`), возвращается [NaN](/ru/reference/data-types/float#nan-and-inf). Это сделано для того, чтобы отличать такие случаи от случаев, в которых результат равен нулю. Примечания о сортировке значений `NaN` см. в разделе [предложение ORDER BY](/ru/reference/statements/select/order-by).
</Note>

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

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

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

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

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

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

* `expr` — Выражение над значениями столбца, возвращающее число типа Float\*. Если в функцию передаются отрицательные значения, поведение не определено. Если значение превышает 30 000 (время загрузки страницы более 30 секунд), считается, что оно равно 30 000. [`Float*`](/ru/reference/data-types/float)
* `weight` — Столбец с весами элементов последовательности. Вес — это количество вхождений значения. [`UInt*`](/ru/reference/data-types/int-uint)

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

Квантиль указанного уровня. [`Float32`](/ru/reference/data-types/float)

**Примеры**

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

```sql title=Query theme={null}
CREATE TABLE t (response_time UInt32, weight UInt32) ENGINE = Memory;
INSERT INTO t VALUES (68, 1), (104, 2), (112, 3), (126, 2), (138, 1), (162, 1);

SELECT quantileTimingWeighted(response_time, weight) FROM t;
```

```response title=Response theme={null}
┌─quantileTimingWeighted(response_time, weight)─┐
│                                           112 │
└───────────────────────────────────────────────┘
```
