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