跳到主要内容
跳到主要内容

quantileExactWeightedInterpolated

计算数值数据序列的分位数,使用线性插值,考虑每个元素的权重。

为了获得插值结果,所有传入的值被组合成一个数组,然后根据其对应的权重进行排序。分位数插值是通过构建基于权重的累积分布,采用加权百分位法来执行的,然后使用权重和值进行线性插值以计算分位数。

在查询中使用多个不同级别的 quantile* 函数时,内部状态不会合并(也就是说,查询的效率不如它本可以达到的那样)。在这种情况下,建议使用 quantiles 函数。

我们强烈推荐使用 quantileExactWeightedInterpolated 而不是 quantileInterpolatedWeighted,因为 quantileExactWeightedInterpolatedquantileInterpolatedWeighted 更加准确。以下是一个示例:

语法

别名: medianExactWeightedInterpolated.

参数

  • level — 分位数的级别。可选参数。0 到 1 之间的常量浮点数。我们建议使用 level 值范围在 [0.01, 0.99] 内。默认值: 0.5。在 level=0.5 时,此函数计算中位数
  • expr — 针对列值的表达式,结果为数值型数据类型DateDateTime
  • weight — 包含序列成员权重的列。权重是具有无符号整数类型的值出现次数。

返回值

  • 指定级别的分位数。

类型:

  • 数值数据类型输入的Float64
  • 如果输入值具有 Date 类型,则返回Date
  • 如果输入值具有 DateTime 类型,则返回DateTime

示例

输入表:

结果:

另见