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

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] │
└─────────────────────┘

См. также