quantileGK
quantile числовой последовательности с использованием алгоритма Greenwald-Khanna.
Алгоритм Greenwald-Khanna используется для очень эффективного вычисления квантилей в потоке данных.
Он был представлен Майклом Гринвальдом и Сандживом Ханной в 2001 году.
Он широко используется в базах данных и системах обработки больших данных, где требуется вычислять точные квантили на больших потоках данных в реальном времени.
Алгоритм очень эффективен: для каждого элемента ему требуется всего O(log n) памяти и O(log log n) времени (где n — размер входных данных).
При этом он обеспечивает высокую точность, выдавая приближённое значение квантиля с высокой вероятностью.
quantileGK отличается от других функций вычисления квантилей в ClickHouse тем, что позволяет пользователю управлять точностью приближённого результата.
Синтаксис
medianGK
Параметры
accuracy— Точность квантиля. Константное положительное целое число. Чем больше значение точности, тем меньше ошибка. Например, если аргументaccuracyзадан как 100, вычисленный квантиль с высокой вероятностью будет иметь ошибку не более 1%. Между точностью вычисляемых квантилей и вычислительной сложностью алгоритма существует компромисс. Более высокое значение точности требует больше памяти и вычислительных ресурсов для точного вычисления квантиля, тогда как меньшее значениеaccuracyпозволяет выполнять вычисления быстрее и с меньшими затратами памяти, но с несколько меньшей точностью.UInt*level— Необязательный. Уровень квантиля. Константное число с плавающей точкой от 0 до 1. Значение по умолчанию: 0.5. Приlevel=0.5функция вычисляет медиану.Float*
expr— Выражение над значениями столбца, возвращающее значения числовых типов данных,Date,DateTimeилиDateTime64.(U)Int*илиInt128илиUInt128илиInt256илиUInt256илиFloat*илиDecimal*илиDateилиDateTimeилиDateTime64
(U)Int* или Int128 или UInt128 или Int256 или UInt256 или Float* или Decimal* или Date или DateTime или DateTime64
Примеры
Вычисление квантиля с разными значениями точности
Query
Response
Query
Response