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

quantileTDigestWeighted

使用t-digest算法计算数值数据序列的近似分位数。该函数考虑了每个序列成员的权重。最大错误为1%。内存消耗为log(n),其中n是值的数量。

该函数的性能低于quantilequantileTiming的性能。在状态大小与精度的比率方面,该函数比quantile要好得多。

结果依赖于查询的执行顺序,并且是非确定性的。

在查询中使用多个不同层级的quantile*函数时,内部状态不会被组合(即,查询的效率低于可能的效率)。在这种情况下,请使用quantiles函数。

备注

使用quantileTDigestWeighted 不推荐用于小型数据集,并可能导致显著误差。在这种情况下,请考虑使用quantileTDigest

语法

quantileTDigestWeighted(level)(expr, weight)

别名:medianTDigestWeighted

参数

  • level — 分位数层级。可选参数。范围从0到1的常量浮点数。推荐使用level值在[0.01, 0.99]范围内。默认值:0.5。在level=0.5时,该函数计算中位数
  • expr — 针对列值的表达式,结果为数值数据类型DateDateTime
  • weight — 带有序列元素权重的列。权重是值出现的次数。

返回值

  • 指定层级的近似分位数。

类型:

  • 对于数值数据类型输入,返回Float64
  • 如果输入值为Date类型,则返回Date
  • 如果输入值为DateTime类型,则返回DateTime

示例

查询:

SELECT quantileTDigestWeighted(number, 1) FROM numbers(10)

结果:

┌─quantileTDigestWeighted(number, 1)─┐
│                                4.5 │
└────────────────────────────────────┘

另见