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, но принимает несколько параметров с уровнями квантилей и возвращает массив, заполненный множеством значений этих квантилей.
Пример
Входная таблица:
Запрос:
Результат:
См. также