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的最大值为65536。UInt64load_factor— 可选。定义为这些值预留多少个单元。如果uniq(column) > N * load_factor,则 topK 函数的结果将为近似值。默认值:3。UInt64counts— 可选。定义结果是否应包含近似计数和误差值。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] │
└─────────────────────┘另请参阅