quantileGK
Вычисляет квантиль числовой последовательности данных с использованием алгоритма Гринвальда–Ханны (Greenwald-Khanna). Алгоритм Гринвальда–Ханны используется для высокоэффективного вычисления квантилей на потоке данных. Он был предложен Майклом Гринвальдом (Michael Greenwald) и Сандживом Ханной (Sanjeev Khanna) в 2001 году. Широко используется в базах данных и системах обработки больших данных, где необходимо вычислять точные значения квантилей на большом потоке данных в режиме реального времени. Алгоритм очень эффективен, требуя лишь O(log n) памяти и O(log log n) времени на элемент (где n — размер входных данных). Он также обладает высокой точностью, обеспечивая приближённое значение квантиля с высокой вероятностью.
quantileGK отличается от других функций вычисления квантилей в ClickHouse, поскольку позволяет пользователю управлять точностью приблизительного результата.
Синтаксис
Псевдоним: medianGK.
Аргументы
-
accuracy— Точность квантиля. Константное положительное целое число. Чем больше значение, тем меньше погрешность. Например, если аргументaccuracyравен 100, вычисленный квантиль с высокой вероятностью будет иметь погрешность не более 1%. Существует компромисс между точностью вычисляемых квантилей и вычислительной сложностью алгоритма. Более высокая точность требует больше памяти и вычислительных ресурсов, тогда как меньшая точность позволяет выполнять вычисления быстрее и с меньшим потреблением памяти, но с несколько меньшей точностью. -
level— Уровень квантиля. Необязательный параметр. Константное число с плавающей запятой от 0 до 1. Значение по умолчанию: 0.5. Приlevel=0.5функция вычисляет медиану. -
expr— Выражение над значениями столбца, результатом которого являются числовые типы данных, Date или DateTime.
Возвращаемое значение
- Квантиль указанного уровня и точности.
Тип:
- Float64 для числового типа данных.
- Date, если входные значения имеют тип
Date. - DateTime, если входные значения имеют тип
DateTime.
Пример
См. также
- [median]/sql-reference/aggregate-functions/reference/median
- quantiles