quantileExact 函数
quantileExact
准确计算数字数据序列的分位数。
为了获得准确值,所有传递的值被组合成一个数组,然后进行部分排序。因此,该函数消耗 O(n)
的内存,其中 n
是传递的值的数量。尽管如此,对于少量值,该函数仍然非常有效。
当在查询中使用多个不同级别的 quantile*
函数时,内部状态不会合并(也就是说,查询的效率低于其应有的效率)。在这种情况下,请使用 quantiles 函数。
语法
别名: medianExact
。
参数
level
— 分位数的级别。可选参数。常量浮点数,范围为 0 到 1。我们建议使用[0.01, 0.99]
范围内的level
值。默认值: 0.5。在level=0.5
时,该函数计算中位数。expr
— 针对列值的表达式,返回数字数据类型、Date或DateTime。
返回值
- 指定级别的分位数。
类型:
- 对于数字数据类型,输出格式将与输入格式相同。例如:
示例
查询:
结果:
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。
返回值
- 指定级别的分位数。
类型:
示例
查询:
结果:
quantileExactHigh
与 quantileExact
相似,该函数计算数字数据序列的确切分位数。
为了获得准确值,所有传递的值被组合成一个数组,并进行完全排序。排序算法的复杂度为 O(N·log(N))
,其中 N = std::distance(first, last)
比较次数。
返回值取决于分位数级别和选择中元素的数量,即如果级别为 0.5,则该函数会返回偶数个元素的较高中位数值,以及奇数个元素的中间中位数值。中位数的计算方式类似于在 Python 中使用的 median_high 实现。对于所有其他级别,返回对应于 level * size_of_array
值的索引的元素。
该实现的行为与当前的 quantileExact
实现是完全相同的。
当在查询中使用多个不同级别的 quantile*
函数时,内部状态不会合并(也就是说,查询的效率低于其应有的效率)。在这种情况下,请使用 quantiles 函数。
语法
别名: medianExactHigh
。
参数
level
— 分位数的级别。可选参数。常量浮点数,范围为 0 到 1。我们建议使用[0.01, 0.99]
范围内的level
值。默认值: 0.5。在level=0.5
时,该函数计算中位数。expr
— 针对列值的表达式,返回数字数据类型、Date或DateTime。
返回值
- 指定级别的分位数。
类型:
示例
查询:
结果:
quantileExactExclusive
准确计算数字数据序列的分位数。
为了获得准确值,所有传递的值被组合成一个数组,然后进行部分排序。因此,该函数消耗 O(n)
的内存,其中 n
是传递的值的数量。尽管如此,对于少量值,该函数仍然非常有效。
此函数等同于 Excel 函数 PERCENTILE.EXC(类型 R6)。
当在查询中使用多个不同级别的 quantileExactExclusive
函数时,内部状态不会合并(也就是说,查询的效率低于其应有的效率)。在这种情况下,请使用 quantilesExactExclusive 函数。
语法
参数
参数
返回值
- 指定级别的分位数。
类型:
示例
查询:
结果:
quantileExactInclusive
准确计算数字数据序列的分位数。
为了获得准确值,所有传递的值被组合成一个数组,然后进行部分排序。因此,该函数消耗 O(n)
的内存,其中 n
是传递的值的数量。尽管如此,对于少量值,该函数仍然非常有效。
此函数等同于 Excel 函数 PERCENTILE.INC(类型 R7)。
当在查询中使用多个不同级别的 quantileExactInclusive
函数时,内部状态不会合并(也就是说,查询的效率低于其应有的效率)。在这种情况下,请使用 quantilesExactInclusive 函数。
语法
参数
参数
返回值
- 指定级别的分位数。
类型:
示例
查询:
结果:
参见