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