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

quantilesExactExclusive

quantilesExactExclusive

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

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

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

在处理多个分位点(分位等级)时,比 quantileExactExclusive 更高效。

语法

quantilesExactExclusive(level1, level2, ...)(expr)

参数

参数说明

  • level — 分位数的级别。可能的取值范围:(0, 1) — 不包含边界。Float

返回值

  • 包含指定级别对应分位数的 Array

数组元素类型:

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

示例

查询:

CREATE TABLE num AS numbers(1000);

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

结果:

┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(x)─┐
│ [249.25,499.5,749.75,899.9,949.9499999999999,989.99,998.999]        │
└─────────────────────────────────────────────────────────────────────┘