跳至主要内容

topK

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

实现了 过滤空间节省 算法来分析 TopK,该算法基于 并行空间节省 的归约和组合算法。

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

此函数不提供保证的结果。在某些情况下,可能会发生错误,并且它可能会返回不是最频繁值的频繁值。

建议使用 N < 10 的值;使用较大的 N 值会降低性能。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] │
└─────────────────────┘

另请参阅