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.(U)Int*илиFloat*илиDecimal*илиDateилиDateTime
Float64 или Date или DateTime
Примеры
Вычисление квантиля с разными значениями точности
Query
Response
Query
Response