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

quantileDeterministic

Вычисляет приблизительный квантиль числовой последовательности данных.

Эта функция применяет резервуарное взSampling с размером резервуара до 8192 и детерминированным алгоритмом выборки. Результат является детерминированным. Чтобы получить точный квантиль, используйте функцию quantileExact.

При использовании нескольких функций quantile* с разными уровнями в запросе внутренние состояния не комбинируются (т.е. запрос работает менее эффективно, чем мог бы). В этом случае используйте функцию quantiles.

Синтаксис

quantileDeterministic(level)(expr, determinator)

Псевдоним: medianDeterministic.

Аргументы

  • level — Уровень квантиля. Необязательный параметр. Константное число с плавающей запятой от 0 до 1. Рекомендуем использовать значение level в диапазоне [0.01, 0.99]. Значение по умолчанию: 0.5. При level=0.5 функция вычисляет медиану.
  • expr — Выражение над значениями колонки, приводимое к числовым типам данных, Date или DateTime.
  • determinator — Число, хеш которого используется вместо генератора случайных чисел в алгоритме резервуарного взSampling для того, чтобы сделать результат выборки детерминированным. В качестве детерминатора можно использовать любое детерминированное положительное число, например, идентификатор пользователя или идентификатор события. Если одно и то же значение детерминатора встречается слишком часто, функция работает некорректно.

Возвращаемое значение

  • Приблизительный квантиль указанного уровня.

Тип:

  • Float64 для входных данных числового типа.
  • Date если входные значения имеют тип Date.
  • DateTime если входные значения имеют тип DateTime.

Пример

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

┌─val─┐
│   1 │
│   1 │
│   2 │
│   3 │
└─────┘

Запрос:

SELECT quantileDeterministic(val, 1) FROM t

Результат:

┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘

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