Перейти к основному содержимому
Перейти к основному содержимому

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.

Пример

Входная таблица:

Запрос:

Результат:

Смотрите также