quantilesExactWeightedInterpolated
首次引入版本:v24.10.0
考虑每个元素的权重,使用线性插值同时计算数值数据序列在不同级别上的多个分位数。
此函数等同于 quantileExactWeightedInterpolated,但支持在一次遍历中计算多个分位数级别,因此比逐个调用分位数函数更高效。
语法
quantilesExactWeightedInterpolated(level1, level2, ...)(expr, weight)参数
level— 分位数的级别。一个或多个介于 0 到 1 之间的常量浮点数。建议将level值设在[0.01, 0.99]范围内。Float*
Arguments
expr— 基于列值的表达式,其结果为数值数据类型、Date、DateTime或DateTime64。(U)Int*或Int128或UInt128或Int256或UInt256或Float*或Decimal*或Date或DateTime或DateTime64weight— 包含序列成员权重的列。权重表示值出现的次数。UInt*
返回值
按指定级别的顺序返回分位数组。数值参数会生成 Float64,而 Decimal、Date、DateTime 和 DateTime64 参数会保留其输入格式。Array(Float64) 或 Array(Decimal*) 或 Array(Date) 或 Array(DateTime) 或 Array(DateTime64)
示例
计算多个精确加权插值分位数
SELECT quantilesExactWeightedInterpolated(0.25, 0.5, 0.75)(number, 1) FROM numbers(10)┌─quantilesExactWeightedInterpolated(0.25, 0.5, 0.75)(number, 1)─┐
│ [2.25,4.5,6.75] │
└────────────────────────────────────────────────────────────────┘