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