跳到主要内容
跳到主要内容

topK

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

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

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

另请参阅