quantile
计算数值数据序列的近似分位数。
此函数应用蓄水池抽样,蓄水池大小最多为 8192,并使用随机数生成器进行抽样。结果是非确定性的。要获得精确的分位数,请使用 quantileExact 函数。
当在查询中使用具有不同级别的多个 quantile*
函数时,内部状态不会组合(即,查询的效率低于可能的效率)。在这种情况下,请使用 quantiles 函数。
请注意,对于空的数值序列,quantile
将返回 NaN,但其 quantile*
变体将返回 NaN 或序列类型的默认值,具体取决于变体。
语法
quantile(level)(expr)
别名:median
。
参数
level
— 分位数水平。可选参数。从 0 到 1 的常数浮点数。我们建议使用[0.01, 0.99]
范围内的level
值。默认值:0.5。在level=0.5
时,该函数计算中位数。expr
— 表达式,作用于列值,结果为数值数据类型、Date 或 DateTime。
返回值
- 指定水平的近似分位数。
类型
示例
输入表
┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘
查询
SELECT quantile(val) FROM t
结果
┌─quantile(val)─┐
│ 1.5 │
└───────────────┘
另请参阅