quantilesInterpolatedWeighted
引入版本:v23.1.0
使用线性插值,同时计算数值数据序列在不同级别上的多个分位数,并将每个元素的权重纳入计算。
此函数等价于 quantileInterpolatedWeighted,但支持在一次遍历中计算多个分位数级别,因此比逐个调用分位数函数更高效。
语法
quantilesInterpolatedWeighted(level1, level2, ...)(expr, weight)参数
level— 分位数的级别。一个或多个介于 0 到 1 之间的常量浮点数。建议将level的值设在[0.01, 0.99]范围内。Float*
参数
expr— 基于列值计算、结果为数值数据类型、Date、DateTime或DateTime64的表达式。(U)Int*orInt128orUInt128orInt256orUInt256orFloat*orDecimal*orDateorDateTimeorDateTime64weight— 序列成员的权重列。权重表示某个值出现的次数。UInt*
返回值
由指定级别的分位数组成的数组,顺序与指定级别的顺序相同。对于数值数据类型,输出格式与输入格式一致。Array((U)Int*) or Array(Int128) or Array(UInt128) or Array(Int256) or Array(UInt256) or Array(Float*) or Array(Decimal*) or Array(Date) or Array(DateTime) or Array(DateTime64)
示例
计算多个经插值的加权分位数
SELECT quantilesInterpolatedWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(10)┌─quantilesInterpolatedWeighted(0.25, 0.5, 0.75)(number, 1)─┐
│ [2,4,7] │
└───────────────────────────────────────────────────────────┘