quantileExactLow
与 quantileExact 类似,该函数计算数值数据序列的精确分位数。
为了得到精确值,会将所有传入的值合并到一个数组中,然后对该数组进行完整排序。排序算法的复杂度为 O(N·log(N)),其中 N = std::distance(first, last) 为比较次数。
返回值取决于分位数级别和选取中的元素个数。比如当级别为 0.5 时,对于元素个数为偶数的情况,函数返回较小的中位数值;对于元素个数为奇数的情况,返回中间的中位数值。中位数的计算方式与 Python 中使用的 median_low 实现类似。
对于所有其他级别,返回数组中索引为 level * size_of_array 的元素。例如:
在一个查询中使用多个不同级别的 quantile* 函数时,它们的内部状态不会被合并(也就是说,查询的执行效率会低于最优)。在这种情况下,请使用 quantiles 函数。
语法
别名:medianExactLow。
参数
level— 分位数的水平。可选参数。取值为 0 到 1 之间的常量浮点数。推荐使用[0.01, 0.99]范围内的level值。默认值:0.5。当level=0.5时,函数计算中位数。expr— 作用于列值的表达式,其结果类型为数值型数据类型、Date 或 DateTime。
返回值
- 指定水平的分位数。
类型:
示例
查询:
结果: