跳转到主内容
跳转到主内容

quantilesExactExclusive

quantilesExactExclusive

引入版本:v20.1

使用排除法(exclusive method),对数值数据序列在多个不同分位水平上同时精确计算多个分位数

此函数等价于 quantileExactExclusive,但允许在一次遍历中计算多个分位水平,与分别调用单个分位函数相比更高效。

该函数使用排除法来计算分位数,如 R-6 method 中所述。 这等价于 Excel 函数 PERCENTILE.EXC

为了获得精确值,所有传入的值会被组合成一个数组,然后对其进行部分排序。 排序算法的复杂度为 O(N·log(N)),其中 N = std::distance(first, last) 次比较。

语法

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

参数

  • level — 分位数的水平。取值为 0 到 1(不包含)之间的常量浮点数。推荐使用范围在 (0.01, 0.99)level 值。Float*

参数

返回值

一个数组,包含按指定水平计算得到的分位数,顺序与指定的水平顺序相同。Array(Float64)

示例

计算多个精确的排除型分位数

CREATE TABLE num AS numbers(1000);
SELECT quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number) FROM num;
┌─quantilesExactExclusive(0.25, 0.5, 0.75, 0.9, 0.95, 0.99, 0.999)(number)─┐
│ [249.25,499.5,749.75,899.9,949.95,989.99,998.999]                        │
└──────────────────────────────────────────────────────────────────────────┘