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