quantilesExactWeighted
Introduced in:v1.1.0
精确计算数值数据序列在不同级别上的多个分位数,并同时考虑每个元素的权重。
此函数等同于 quantileExactWeighted,但支持在单次遍历中计算多个分位数级别,因此比逐个调用分位数函数更高效。
Syntax
quantilesExactWeighted(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*
返回值
按指定级别的顺序返回对应分位数的数组。对于数值数据类型,输出格式与输入格式一致。Array((U)Int*) 或 Array(Int128) 或 Array(UInt128) 或 Array(Int256) 或 Array(UInt256) 或 Array(Float*) 或 Array(Decimal*) 或 Array(Date) 或 Array(DateTime) 或 Array(DateTime64)
示例
计算多个精确加权分位数
SELECT quantilesExactWeighted(0.25, 0.5, 0.75)(number, 1) FROM numbers(10)┌─quantilesExactWeighted(0.25, 0.5, 0.75)(number, 1)─┐
│ [2,4,7] │
└────────────────────────────────────────────────────┘