quantileDeterministic
计算数值数据序列的近似分位数。
此函数应用蓄水池抽样,蓄水池大小最多为 8192,并采用确定性抽样算法。结果是确定性的。要获得精确的分位数,请使用 quantileExact 函数。
当在查询中使用具有不同级别的多个 quantile*
函数时,内部状态不会组合(即,查询的效率低于应有的水平)。在这种情况下,请使用 quantiles 函数。
语法
quantileDeterministic(level)(expr, determinator)
别名:medianDeterministic
。
参数
level
— 分位数水平。可选参数。从 0 到 1 的常量浮点数。我们建议使用[0.01, 0.99]
范围内的level
值。默认值: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 │
└───────────────────────────────┘
另请参阅