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

approx_top_sum

Возвращает массив приблизительно наиболее часто встречающихся значений и количества их вхождений в указанном столбце. Результирующий массив отсортирован по убыванию приблизительной частоты значений (не по самим значениям). Также учитывается вес значений.

approx_top_sum(N)(column, weight)
approx_top_sum(N, reserved)(column, weight)

Эта функция не гарантирует точный результат. В некоторых ситуациях возможны погрешности, и она может возвращать часто встречающиеся значения, которые не являются наиболее частыми.

Рекомендуем использовать N < 10; при больших значениях N производительность снижается. Максимальное значение N = 65536.

Параметры

  • N — Количество элементов, которые нужно вернуть. Необязательный параметр. Значение по умолчанию: 10.
  • reserved — Определяет, сколько ячеек зарезервировано для значений. Если uniq(column) > reserved, результат функции topK будет приближённым. Необязательный параметр. Значение по умолчанию: N * 3.

Аргументы

  • column — Значение, для которого вычисляется частота.
  • weight — Вес. Каждое значение учитывается weight раз при вычислении частоты. UInt64.

Пример

Запрос:

SELECT approx_top_sum(2)(k, w)
FROM VALUES('k Char, w UInt64', ('y', 1), ('y', 1), ('x', 5), ('y', 1), ('z', 10))

Результат:

┌─approx_top_sum(2)(k, w)─┐
│ [('z',10,0),('x',5,0)]  │
└─────────────────────────┘

См. также