Skip to main content

quantilesTDigestWeighted

引入版本:v20.1.0 使用 t-digest 算法,同时计算数值数据序列在不同级别上的多个近似分位数。 该函数会将序列中每个成员的权重纳入计算。 此函数等同于 quantileTDigestWeighted,但支持在一次遍历中计算多个分位数级别,因此比逐个调用分位数函数更高效。 最大误差为 1%。内存消耗为 log(n),其中 n 是值的数量。 该函数的性能低于 quantilesquantilesTiming。 但从状态大小与精度的比率来看,此函数明显优于 quantiles 结果取决于查询的运行顺序,因此是非确定性的。
不建议将 quantilesTDigestWeighted 用于很小的数据集,否则可能会产生显著误差。 在这种情况下,可以考虑改用 quantilesTDigest
语法
参数
  • level — 分位数的级别。一个或多个介于 0 到 1 之间的常量浮点数。建议将 level 的值设在 [0.01, 0.99] 范围内。Float*
参数说明
  • expr — 基于列值计算的表达式,结果类型为数值数据类型、DateDateTime(U)Int*Float*DateDateTime
  • weight — 包含序列中各元素权重的列。权重表示某个值出现的次数。UInt*
返回值 返回按指定级别顺序排列的近似分位数组。对于 DateDateTime 输入,输出格式与输入格式一致。Array(Float32)Array(Date)Array(DateTime) 示例 使用 t-digest 计算多个加权分位数
Query
Response
最后修改于 2026年7月23日