Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

topK

topK

Introduced in: v1.1.0

返回指定列中近似最常见的值组成的数组。结果数组按值出现频率的近似值降序排序 (而不是按值本身排序) 。

该函数实现了用于分析 TopK 的 Filtered Space-Saving 算法,该算法基于 Parallel Space Saving 中的 reduce-and-combine 算法。

此函数不保证结果的准确性。在某些情况下,可能会出现误差,并返回出现频率较高但并非最高频的值。

See Also

Syntax

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

参数

  • N — 要返回的元素个数。默认值:10。N 的最大值为 65536UInt64
  • 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