quantileTimingWeighted
С заданной точностью вычисляет квантиль числовой последовательности данных в зависимости от веса каждого элемента последовательности.
Результат является детерминированным (не зависит от порядка обработки запроса). Функция оптимизирована для работы с последовательностями, которые описывают распределения, такие как время загрузки веб-страниц или время отклика бэкенда.
При использовании нескольких функций quantile*
с разными уровнями в запросе, внутренние состояния не объединяются (то есть, запрос работает менее эффективно, чем мог бы). В этом случае используйте функцию quantiles.
Синтаксис
Псевдоним: medianTimingWeighted
.
Аргументы
-
level
— Уровень квантиля. Необязательный параметр. Константа с плавающей запятой от 0 до 1. Рекомендуется использовать значениеlevel
в диапазоне[0.01, 0.99]
. Значение по умолчанию: 0.5. Приlevel=0.5
функция вычисляет медиану. -
expr
— Выражение над значениями колонки, возвращающее число типа Float*.- Если на функцию переданы отрицательные значения, поведение не определено.
- Если значение больше 30,000 (время загрузки страницы более 30 секунд), оно считается равным 30,000.
-
weight
— Колонка с весами элементов последовательности. Вес — это количество вхождений значения.
Точность
Расчет является точным, если:
- Общее количество значений не превышает 5670.
- Общее количество значений превышает 5670, но время загрузки страницы составляет менее 1024 мс.
В противном случае результат вычисления округляется до ближайшего кратного 16 мс.
Для вычисления квантилей времени загрузки страницы эта функция более эффективна и точна, чем quantile.
Возвращаемое значение
- Квантиль указанного уровня.
Тип: Float32
.
Если функции не передаются значения (при использовании quantileTimingIf
), возвращается NaN. Это нужно для различия случаев, которые приводят к нулю. См. примечания по сортировке значений NaN
в ORDER BY clause.
Пример
Исходная таблица:
Запрос:
Результат:
quantilesTimingWeighted
Так же, как quantileTimingWeighted
, но принимает несколько параметров с уровнями квантиля и возвращает массив, заполненный значениями этих квантилей.
Пример
Исходная таблица:
Запрос:
Результат:
См. также