Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

topK

topK

Добавленный в: v1.1.0

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

Реализует алгоритм 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 — Количество элементов, которые нужно вернуть. Значение по умолчанию: 10. Максимальное значение N = 65536. UInt64
  • load_factor — Необязательный параметр. Определяет, сколько ячеек резервируется для значений. Если uniq(column) > N * load_factor, результат функции topK будет приблизительным. Значение по умолчанию: 3. UInt64
  • counts — Необязательный параметр. Определяет, должен ли результат содержать приблизительное количество и значение ошибки. Bool

Аргументы

  • column — Имя столбца, для которого нужно найти наиболее часто встречающиеся значения. String

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

Возвращает массив приблизительно наиболее часто встречающихся значений, отсортированных по убыванию приблизительной частоты. Array

Примеры

Пример использования

SELECT topK(3)(AirlineID) AS res
FROM VALUES('AirlineID UInt32', (19393), (19393), (19393), (19393), (19790), (19790), (19790), (19805), (19805), (20304));
┌─res─────────────────┐
│ [19393,19790,19805] │
└─────────────────────┘

См. также

Navigation