跳转到主要内容

quantileExactLow

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