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 мс.
:::note
Для вычисления квантилей времени загрузки страницы эта функция более эффективна и точна, чем quantile.
:::
Возвращаемое значение
- Квантиль указанного уровня.
Тип: Float32.
:::note
Если в функцию не переданы значения (при использовании quantileTimingIf), возвращается NaN. Это позволяет отличать такие случаи от случаев, когда результатом является ноль. См. примечания о сортировке значений NaN в разделе ORDER BY.
:::
Пример
Исходная таблица:
Запрос:
Результат:
quantilesTimingWeighted
То же, что и quantileTimingWeighted, но принимает несколько аргументов уровней квантилей и возвращает массив, содержащий значения этих квантилей.
Пример
Входная таблица:
Запрос:
Результат:
См. также