跳转到主要内容

quantileExactHigh

Introduced in: v20.8.0 quantileExact 类似,该函数用于计算数值数据序列的精确分位数 为了得到精确值,所有传入的值都会组合成一个数组,然后对其进行完全排序。 排序算法的复杂度为 O(N·log(N)),其中 N = std::distance(first, last),即比较次数。 返回值取决于分位数级别和所选元素的数量。也就是说,当级别为 0.5 时,如果元素个数为偶数,则函数返回较大的中位数值;如果元素个数为奇数,则返回中间的中位数值。 中位数的计算方式与 Python 中使用的 median_high 实现类似。 对于其他所有级别,返回索引对应于 level * size_of_array 的元素。 当在一个查询中使用多个不同级别的 quantile* 函数时,它们的内部状态不会合并 (也就是说,查询效率会低于理想情况) 。 在这种情况下,请使用 quantiles 函数。 Syntax
quantileExactHigh(level)(expr)
别名: medianExactHigh 参数
  • level — 可选。分位数级别。取值为 0 到 1 之间的常量浮点数。建议将 level 设为 [0.01, 0.99] 范围内的值。默认值:0.5。当 level=0.5 时,该函数计算中位数。Float*
Arguments 返回值 返回指定级别的分位数。Float64DateDateTime 示例 计算精确高分位数
Query
SELECT quantileExactHigh(number) FROM numbers(10);
Response
┌─quantileExactHigh(number)─┐
│                         5 │
└───────────────────────────┘
计算特定分位点
Query
SELECT quantileExactHigh(0.1)(number) FROM numbers(10);
Response
┌─quantileExactHigh(0.1)(number)─┐
│                              1 │
└────────────────────────────────┘
最后修改于 2026年6月10日