跳到主要内容
跳到主要内容

quantileExact 函数

quantileExact

准确计算数值数据序列的 分位数

为了获得准确值,所有传递的值会组合成一个数组,然后对其进行部分排序。因此,该函数消耗 O(n) 内存,其中 n 是传递的值的数量。然而,对于较少的值,该函数非常高效。

在查询中使用多个不同级别的 quantile* 函数时,内部状态不会合并(即,查询的效率不如可能的那样高)。在这种情况下,请使用 quantiles 函数。

语法

别名:medianExact

参数

  • level — 分位数的级别。可选参数。0到1之间的常量浮点数。我们建议使用 [0.01, 0.99] 范围内的 level 值。默认值:0.5。在 level=0.5 时,函数计算 中位数
  • expr — 表达式,针对列值生成数值 数据类型DateDateTime

返回值

  • 指定级别的分位数。

类型:

  • 对于数值数据类型,输出格式与输入格式相同。例如:
  • 如果输入值的类型为 Date,则返回 Date
  • 如果输入值的类型为 DateTime,则返回 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 — 表达式,针对列值生成数值 数据类型DateDateTime

返回值

  • 指定级别的分位数。

类型:

  • 对于数值数据类型输入返回 Float64
  • 如果输入值的类型为 Date,则返回 Date
  • 如果输入值的类型为 DateTime,则返回 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 — 表达式,针对列值生成数值 数据类型DateDateTime

返回值

  • 指定级别的分位数。

类型:

  • 对于数值数据类型输入返回 Float64
  • 如果输入值的类型为 Date,则返回 Date
  • 如果输入值的类型为 DateTime,则返回 DateTime

示例

查询:

结果:

quantileExactExclusive

准确计算数值数据序列的 分位数

为了获得准确值,所有传递的值会组合成一个数组,然后对其进行部分排序。因此,该函数消耗 O(n) 内存,其中 n 是传递的值的数量。然而,对于较少的值,该函数非常高效。

此函数等价于 Excel 函数 PERCENTILE.EXC,(type R6)。

在查询中使用多个不同级别的 quantileExactExclusive 函数时,内部状态不会合并(即,查询的效率不如可能的那样高)。在这种情况下,请使用 quantilesExactExclusive 函数。

语法

参数

参数

  • level — 分位数的级别。可选。可能的值: (0, 1) — 边界不包括。默认值:0.5。在 level=0.5 时,函数计算 中位数Float

返回值

  • 指定级别的分位数。

类型:

  • 对于数值数据类型输入返回 Float64
  • 如果输入值的类型为 Date,则返回 Date
  • 如果输入值的类型为 DateTime,则返回 DateTime

示例

查询:

结果:

quantileExactInclusive

准确计算数值数据序列的 分位数

为了获得准确值,所有传递的值会组合成一个数组,然后对其进行部分排序。因此,该函数消耗 O(n) 内存,其中 n 是传递的值的数量。然而,对于较少的值,该函数非常高效。

此函数等价于 Excel 函数 PERCENTILE.INC,(type R7)。

在查询中使用多个不同级别的 quantileExactInclusive 函数时,内部状态不会合并(即,查询的效率不如可能的那样高)。在这种情况下,请使用 quantilesExactInclusive 函数。

语法

参数

参数

  • level — 分位数的级别。可选。可能的值:[0, 1] — 边界包括。默认值:0.5。在 level=0.5 时,函数计算 中位数Float

返回值

  • 指定级别的分位数。

类型:

  • 对于数值数据类型输入返回 Float64
  • 如果输入值的类型为 Date,则返回 Date
  • 如果输入值的类型为 DateTime,则返回 DateTime

示例

查询:

结果:

另见