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时,函数计算中位数。
返回值
- 指定级别和精度的分位数。
类型:
示例
另请参见
- [median]/sql-reference/aggregate-functions/reference/median
- quantiles