quantileExactWeightedInterpolated
计算数值数据序列的分位数,使用线性插值,考虑每个元素的权重。
为了获得插值结果,所有传入的值被组合成一个数组,然后根据其对应的权重进行排序。分位数插值是通过构建基于权重的累积分布,采用加权百分位法来执行的,然后使用权重和值进行线性插值以计算分位数。
在查询中使用多个不同级别的 quantile*
函数时,内部状态不会合并(也就是说,查询的效率不如它本可以达到的那样)。在这种情况下,建议使用 quantiles 函数。
我们强烈推荐使用 quantileExactWeightedInterpolated
而不是 quantileInterpolatedWeighted
,因为 quantileExactWeightedInterpolated
比 quantileInterpolatedWeighted
更加准确。以下是一个示例:
语法
别名: medianExactWeightedInterpolated
.
参数
level
— 分位数的级别。可选参数。0 到 1 之间的常量浮点数。我们建议使用level
值范围在[0.01, 0.99]
内。默认值: 0.5。在level=0.5
时,此函数计算中位数。expr
— 针对列值的表达式,结果为数值型数据类型,Date 或 DateTime。weight
— 包含序列成员权重的列。权重是具有无符号整数类型的值出现次数。
返回值
- 指定级别的分位数。
类型:
示例
输入表:
结果:
另见