quantilesGK
quantileGK 的工作方式类似,但它支持在单次遍历中计算多个分位数级别,因此比分别调用单个分位数函数更高效。
Greenwald-Khanna 算法是一种以极高效率计算数据流分位数的算法。
该算法由 Michael Greenwald 和 Sanjeev Khanna 于 2001 年提出。
它非常高效,仅需 O(log n) 的空间,且每个条目的处理时间为 O(log log n) (其中 n 为输入大小) 。
它也具有很高的精度,能够以可控精度提供近似分位数值。
语法
accuracy— 分位数精度。常量正整数。accuracy值越大,误差越小。例如,如果accuracy参数设为 100,则计算出的分位数有很高概率将误差控制在 1% 以内。计算分位数的精度与算法的计算复杂度之间需要权衡。UInt*level— 分位数级别。一个或多个介于 0 到 1 之间的常量浮点数。Float*
expr— 基于列值计算的 expression,结果为数值 data types、Date 或 DateTime。(U)Int*或Float*或Decimal*或Date或DateTime
Array(Float64) 或 Array(Date) 或 Array(DateTime)
示例
使用 GK 算法计算多个分位数
Query
Response
Query
Response