Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileTDigestWeighted

quantileTDigestWeighted

Добавленный в: v20.1.0

Вычисляет приблизительный квантиль числовой последовательности данных с помощью алгоритма t-digest. Функция учитывает вес каждого элемента последовательности.

Максимальная ошибка составляет 1%. Потребление памяти составляет log(n), где n — количество значений.

Производительность этой функции ниже, чем у quantile или quantileTiming. С точки зрения соотношения размера состояния и точности эта функция значительно лучше, чем quantile.

Результат зависит от порядка выполнения запроса и является недетерминированным.

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

Синтаксис

quantileTDigestWeighted(level)(expr, weight)

Псевдонимы: medianTDigestWeighted

Параметры

  • level — Необязательный параметр. Уровень квантиля. Константное число с плавающей точкой в диапазоне от 0 до 1. Рекомендуется использовать значение level в диапазоне [0.01, 0.99]. Значение по умолчанию: 0.5. При level=0.5 функция вычисляет медиану. Float*

Аргументы

  • expr — Выражение над значениями столбца, результатом которого являются числовые типы данных, Date или DateTime. (U)Int* или Float* или Date или DateTime
  • weight — Столбец с весами элементов последовательности. Вес — это количество вхождений значения. UInt*

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

Приблизительный квантиль указанного уровня. Для входных данных Date и DateTime выходной формат соответствует входному. Float32 или Date или DateTime

Примеры

Вычисление взвешенного квантиля с помощью t-digest

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10);
┌─quantileTDigestWeighted(number, 1)─┐
│                                  4 │
└────────────────────────────────────┘

См. также

Navigation