quantileDeterministic
计算数值数据序列的近似分位数。
此函数应用蓄水池抽样,蓄水池大小最多为 8192,并使用确定性算法进行抽样。结果是确定的。要获得精确的分位数,请使用quantileExact 函数。
在查询中使用多个具有不同级别的quantile*
函数时,内部状态不会合并(也就是说,查询的工作效率低于其可能达到的效率)。在这种情况下,请使用quantiles 函数。
语法
quantileDeterministic(level)(expr, determinator)
别名:medianDeterministic
。
参数
level
— 分位数级别。可选参数。0 到 1 之间的常量浮点数。我们建议将level
值用于[0.01, 0.99]
范围。默认值:0.5。在level=0.5
时,该函数计算中位数。expr
— 对列值进行运算,生成数值数据类型、Date 或DateTime。determinator
— 用于代替随机数生成器在蓄水池抽样算法中使用的数字的哈希值,以使抽样结果确定性。作为确定器,您可以使用任何确定性的正数,例如用户 ID 或事件 ID。如果相同的确定器值出现得太频繁,则函数将无法正常工作。
返回值
- 指定级别的近似分位数。
类型
示例
输入表
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
查询
SELECT quantileDeterministic(val, 1) FROM t
结果
┌─quantileDeterministic(val, 1)─┐
│ 1.5 │
└───────────────────────────────┘
另请参阅