Перейти к основному содержанию
Перейти к основному содержанию

uniqHLL12

Вычисляет приблизительное количество различных значений аргументов с использованием алгоритма HyperLogLog.

uniqHLL12(x[, ...])

Аргументы

Функция принимает переменное число параметров. Параметры могут иметь типы Tuple, Array, Date, DateTime, String или числовые типы.

Возвращаемое значение

Подробности реализации

Функция:

  • Вычисляет хэш для всех параметров в агрегате и затем использует его в вычислениях.

  • Использует алгоритм HyperLogLog для приближённого подсчёта количества различных значений аргументов.

    Используются 2^12 5-битных ячеек. Размер состояния немного больше 2,5 КБ. Результат не очень точен (погрешность до ~10%) для небольших наборов данных (<10K элементов). Однако результат достаточно точен для наборов данных с высокой кардинальностью (10K-100M), с максимальной погрешностью ~1,6%. Начиная со 100M элементов, ошибка оценки увеличивается, и функция будет возвращать крайне неточные результаты для наборов данных с чрезвычайно высокой кардинальностью (1B+ элементов).

  • Обеспечивает детерминированный результат (он не зависит от порядка обработки запроса).

Мы не рекомендуем использовать эту функцию. В большинстве случаев используйте функцию uniq или uniqCombined.

См. также