mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 08:32:02 +00:00
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
---
|
||
toc_priority: 108
|
||
---
|
||
|
||
# topK {#topk}
|
||
|
||
Возвращает массив наиболее часто встречающихся значений в указанном столбце. Результирующий массив упорядочен по убыванию частоты значения (не по самим значениям).
|
||
|
||
Реализует [Filtered Space-Saving](http://www.l2f.inesc-id.pt/~fmmb/wiki/uploads/Work/misnis.ref0a.pdf) алгоритм для анализа TopK, на основе reduce-and-combine алгоритма из методики [Parallel Space Saving](https://arxiv.org/pdf/1401.0702.pdf).
|
||
|
||
``` sql
|
||
topK(N)(column)
|
||
```
|
||
|
||
Функция не дает гарантированного результата. В некоторых ситуациях могут возникать ошибки, и функция возвращает частые, но не наиболее частые значения.
|
||
|
||
Рекомендуем использовать значения `N < 10`, при больших `N` снижается производительность. Максимально возможное значение `N = 65536`.
|
||
|
||
**Аргументы**
|
||
|
||
- `N` – количество значений.
|
||
- `x` – столбец.
|
||
|
||
**Пример**
|
||
|
||
Возьмём набор данных [OnTime](../../../getting-started/example-datasets/ontime.md) и выберем 3 наиболее часто встречающихся значения в столбце `AirlineID`.
|
||
|
||
``` sql
|
||
SELECT topK(3)(AirlineID) AS res
|
||
FROM ontime
|
||
```
|
||
|
||
``` text
|
||
┌─res─────────────────┐
|
||
│ [19393,19790,19805] │
|
||
└─────────────────────┘
|
||
```
|
||
|