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

quantileExactExclusive

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

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

此函数等价于 Excel 中的 PERCENTILE.EXC 函数(R6 类型)。

在一个查询中使用多个具有不同 level 的 quantileExactExclusive 函数时,其内部状态不会被合并(也就是说,该查询的执行效率低于理论上可以达到的效率)。在这种情况下,请使用 quantilesExactExclusive 函数。

语法

quantileExactExclusive(level)(expr)

参数

参数说明

  • level — 分位数的等级。可选。可能的取值:(0, 1) — 不包含边界。默认值:0.5。在 level=0.5 时,函数计算中位数Float

返回值

  • 指定等级的分位数。

类型:

  • 对数值型数据类型的输入,返回 Float64
  • 如果输入值的类型为 Date,返回 Date
  • 如果输入值的类型为 DateTime,返回 DateTime

示例

查询:

CREATE TABLE num AS numbers(1000);

SELECT quantileExactExclusive(0.6)(x) FROM (SELECT number AS x FROM num);

结果:

┌─quantileExactExclusive(0.6)(x)─┐
│                          599.6 │
└────────────────────────────────┘