quantileExactWeighted
Точно вычисляет квантиль числовой последовательности, учитывая вес каждого её элемента.
Чтобы получить точный результат, все переданные значения собираются в массив, который затем частично сортируется. Для каждого значения учитывается его вес (количество значений в выборке). В алгоритме используется хэш-таблица. Таким образом, если переданные значения часто повторяются, функция потребляет меньше оперативной памяти, чем quantileExact. Эту функцию можно использовать вместо quantileExact если указать вес 1.
Внутренние состояния функций quantile* не объединяются, если они используются в одном запросе. Если вам необходимо вычислить квантили нескольких уровней, используйте функцию quantiles, это повысит эффективность запроса.
Синтаксис
quantileExactWeighted(level)(expr, weight)
Алиас: medianExactWeighted.
Аргументы
- level— уровень квантили. Опционально. Константное значение с плавающей запятой от 0 до 1. Мы рекомендуем использовать значение- levelиз диапазона- [0.01, 0.99]. Значение по умолчанию: 0.5. При- level=0.5функция вычисляет медиану.
- expr— выражение, зависящее от значений столбцов, возвращающее данные числовых типов или типов Date, DateTime.
- weight— столбец с весам элементов последовательности. Вес — это количество повторений элемента в последовательности.
Возвращаемое значение
- Quantile of the specified level.
Тип:
- Float64 для входных данных числового типа.
- Date, если входные значения имеют тип Date.
- DateTime, если входные значения имеют тип DateTime.
Пример
Входная таблица:
┌─n─┬─val─┐
│ 0 │   3 │
│ 1 │   2 │
│ 2 │   1 │
│ 5 │   4 │
└───┴─────┘
Запрос:
SELECT quantileExactWeighted(n, val) FROM t
Результат:
┌─quantileExactWeighted(n, val)─┐
│                             1 │
└───────────────────────────────┘
Смотрите также