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

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, но принимает несколько параметров с уровнями квантиля и возвращает массив, заполненный значениями этих квантилей.

Пример

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

Запрос:

Результат:

См. также