ClickHouse/docs/ru/sql-reference/aggregate-functions/reference/quantileexactweighted.md
BayoNet c1b71ab06e
DOCS-733: Fixed broken links in Russian version (#13106)
* CLICKHOUSEDOCS-733: Fixed some broken links. Updated introduction and TOC in aggregate functions.

* CLICKHOUSEDOCS-733: Fixed files endings.

* CLICKHOUSEDOCS-733: Returned the list of functions back to reference index.

Co-authored-by: Sergei Shtykov <bayonet@yandex-team.ru>
Co-authored-by: emironyuk <em@don.ru>
2020-07-30 15:49:19 +03:00

3.9 KiB
Raw Blame History

toc_priority
203

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 │
└───────────────────────────────┘

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

Оригинальная статья