uniqHLL12
Вычисляет приближенное количество различных значений аргументов, используя алгоритм HyperLogLog.
Аргументы
Функция принимает переменное количество параметров. Параметры могут быть Tuple
, Array
, Date
, DateTime
, String
или числовыми типами.
Возвращаемое значение
- Число типа UInt64.
Подробности реализации
Функция:
-
Вычисляет хэш для всех параметров в агрегате, затем использует его в расчетах.
-
Использует алгоритм HyperLogLog для приближенного подсчета количества различных значений аргументов.
Используются ячейки размером 5 бит по 2^12. Размер состояния немного больше 2.5 КБ. Результат не очень точен (ошибка до ~10%) для небольших наборов данных (<10K элементов). Однако результат довольно точен для наборов данных с высокой кардинальностью (10K-100M), с максимальной ошибкой ~1.6%. Начиная с 100M, ошибка оценки увеличивается, и функция будет возвращать очень неточные результаты для наборов данных с чрезвычайно высокой кардинальностью (1B+ элементов).
-
Обеспечивает детерминированный результат (он не зависит от порядка обработки запроса).
Мы не рекомендуем использовать эту функцию. В большинстве случаев используйте функцию uniq или uniqCombined.
Смотрите также