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

topK

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

Реализует алгоритм Filtered Space-Saving для анализа topK, основанный на алгоритме reduce-and-combine из работы Parallel Space Saving.

topK(N)(column)
topK(N, load_factor)(column)
topK(N, load_factor, 'counts')(column)

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

Максимальное значение N = 65536.

Параметры

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

Аргументы

  • column — значение, для которого рассчитывается частота.

Пример

Возьмем набор данных OnTime и выберем три наиболее часто встречающихся значения в столбце AirlineID.

SELECT topK(3)(AirlineID) AS res
FROM ontime
┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘

См. также