跳转到主要内容

quantileExactInclusive

Introduced in:v20.1.0 quantileExact 类似,此函数用于计算数值数据序列的精确分位数 该函数等同于 quantileExact,但采用包含端点的分位数计算方法,如 R-7 method 中所述。 使用此函数时,分位数的计算满足如下形式:对于给定分位数 p,其插值公式为:x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)]),其中 x 是已排序的数组。 为了获得精确值,所有传入的值都会合并到一个数组中,然后对该数组进行完整排序。 排序算法的复杂度为 O(N·log(N)),其中 N = std::distance(first, last),即比较次数。 当在同一查询中使用多个不同级别的 quantile* 函数时,内部状态不会合并 (也就是说,查询的效率会低于原本可达到的水平) 。 在这种情况下,请使用 quantiles 函数。 Syntax
quantileExactInclusive(level)(expr)
参数
  • level — 分位数的级别。取值范围为 0 到 1 (含) 的常量浮点数。建议将 level 的值设在 [0.01, 0.99] 范围内。Float*
Arguments 返回值 返回指定级别的分位数。Float64 示例 计算精确的包含式分位数
Query
SELECT quantileExactInclusive(0.25)(number) FROM numbers(5);
Response
┌─quantileExactInclusive(0.25)(number)─┐
│                                    1 │
└──────────────────────────────────────┘
计算多个分位数的级别
Query
SELECT quantileExactInclusive(0.1)(number), quantileExactInclusive(0.9)(number) FROM numbers(10);
Response
┌─quantileExactInclusive(0.1)(number)─┬─quantileExactInclusive(0.9)(number)─┐
│                                 0.9 │                                 8.1 │
└─────────────────────────────────────┴─────────────────────────────────────┘
最后修改于 2026年6月10日