quantileExactInclusive
quantileExactInclusive
Добавлена в: v20.1
Подобно функции quantileExact, эта функция вычисляет точный квантиль числовой последовательности данных.
Эта функция эквивалентна quantileExact, но использует инклюзивный метод вычисления квантилей, как описано в методе R-7.
При использовании этой функции квантиль вычисляется так, что интерполяционная формула для заданного квантили p имеет вид: x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)]), где x — отсортированный массив.
Для получения точного значения все переданные значения объединяются в массив, который затем полностью сортируется.
Сложность алгоритма сортировки — O(N·log(N)), при этом выполняется N = std::distance(first, last) сравнений.
При использовании нескольких функций quantile* с различными уровнями в одном запросе их внутренние состояния не объединяются (то есть запрос работает менее эффективно, чем мог бы).
В этом случае используйте функцию quantiles.
Синтаксис
Параметры
level— Уровень квантиля. Константа с плавающей запятой от 0 до 1 (включительно). Рекомендуется использовать значениеlevelв диапазоне[0.01, 0.99].Float*
Аргументы
expr— Выражение над значениями столбца, результатом которого является один из следующих типов данных: числовые типы, Date или DateTime.(U)Int*илиFloat*илиDecimal*илиDateилиDateTime
Возвращаемое значение
Возвращает квантиль указанного уровня. Float64
Примеры
Вычисление точного включающего квантиля
Вычисление квантилей для нескольких уровней