跳至主要内容

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 — 对列值进行运算,得到数值数据类型DateDateTime

返回值

  • 指定级别的近似分位数。

类型

  • 对于数值数据类型输入,为Float64
  • 如果输入值为 Date 类型,则为Date
  • 如果输入值为 DateTime 类型,则为DateTime

示例

输入表

┌─val─┐
│ 1 │
│ 1 │
│ 2 │
│ 3 │
└─────┘

查询

SELECT quantile(val) FROM t

结果

┌─quantile(val)─┐
│ 1.5 │
└───────────────┘

另请参阅