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

quantileExactInclusive

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

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

此函数等价于 Excel 的 PERCENTILE.INC 函数(type R7)。

在一个查询中使用多个具有不同分位水平(level)的 quantileExactInclusive 函数时,其内部状态不会被合并(也就是说,该查询的执行效率低于理论上的最优情况)。在这种情况下,请使用 quantilesExactInclusive 函数。

语法

quantileExactInclusive(level)(expr)

参数

参数说明

  • level — 分位数级别。可选。可取值范围:[0, 1](包含边界)。默认值:0.5。当 level=0.5 时,函数计算中位数Float

返回值

  • 指定级别的分位数。

类型:

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

示例

查询:

CREATE TABLE num AS numbers(1000);

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

结果:

┌─quantileExactInclusive(0.6)(x)─┐
│                          599.4 │
└────────────────────────────────┘