quantileGK
计算一个数字数据序列的 分位数,使用 Greenwald-Khanna 算法。Greenwald-Khanna 算法用于以高效方式计算数据流上的分位数。该算法由 Michael Greenwald 和 Sanjeev Khanna 于 2001 年提出。它在数据库和大数据系统中广泛使用,因为在实时处理大量数据流时需要计算精确的分位数。该算法非常高效,空间复杂度为 O(log n),每个项目的时间复杂度为 O(log log n)(其中 n 是输入的大小)。它还具有很高的准确性,以较高的概率提供近似的分位数值。
quantileGK
与 ClickHouse 中的其他分位数函数不同,因为它使用户能够控制近似分位数结果的准确性。
语法
别名:medianGK
。
参数
-
accuracy
— 分位数的准确性。常数正整数。较大的准确度值意味着误差较小。例如,如果将准确度参数设置为 100,计算出的分位数的误差不会大于 1%,以较高的概率。计算的分位数的准确性与算法的计算复杂性之间存在权衡。较大的准确度需要更多的内存和计算资源以准确计算分位数,而较小的准确度参数则可以实现更快和更节省内存的计算,但准确性稍低。 -
level
— 分位数的级别。可选参数。常数浮点数,范围从 0 到 1。默认值:0.5。在level=0.5
时,该函数计算 中位数。
返回值
- 指定级别和准确性下的分位数。
类型:
示例
参见