跳到主要内容
跳到主要内容

quantilesExactInclusive

精确计算数值数据序列的分位数

为了获得精确值,所有传入的值会被合并到一个数组中,然后对该数组进行部分排序。因此,该函数会消耗 O(n) 级别的内存,其中 n 是传入值的数量。不过,当值的数量较小时,该函数非常高效。

此函数等价于 Excel 函数 PERCENTILE.INCR7 类型)。

quantileExactInclusive 相比,在处理一组分位等级(levels)时效率更高。

语法

quantilesExactInclusive(level1, level2, ...)(expr)

参数

参数

  • level — 分位数的水平。可选取值范围:[0, 1](包含边界)。Float

返回值

  • 指定各水平分位数构成的 Array

数组中元素的类型:

  • 数值类型输入时为 Float64
  • 输入值为 Date 类型时为 Date
  • 输入值为 DateTime 类型时为 DateTime

示例

查询:

CREATE TABLE num AS numbers(1000);

SELECT quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x) FROM (SELECT number AS x FROM num);

结果:

┌─quantilesExactInclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x)─┐
│ [249.75,499.5,749.25,899.1,949.05,989.01,998.001]                   │
└─────────────────────────────────────────────────────────────────────┘