近似百分位数函数:APPROX_PERCENTILE

功能描述

APPROX_PERCENTILE 函数用于计算并返回指定列中数值的近似百分位数。该函数接受两个参数:第一个参数是需要计算百分位数的列名,第二个参数是表示所需百分位数的浮点数。当数据按照升序排列时,该函数返回对应于指定百分比的数值。

参数说明

  1. col: 需要计算百分位数的列名。该列应包含数值类型的数据,如 tinyint、smallint、int、bigint、float、double 或 decimal。
  2. percentage: 一个 double 类型的常量,表示所需计算的百分位数。该值应在 [0.0, 1.0] 区间内。

返回结果

函数返回值为 double 类型。如果指定了 DISTINCT 关键字,则计算结果将基于去重后的数据集进行。需要注意的是,null 值不会参与计算。

使用示例

  1. 计算数据集中的中位数(50%分位数):
SELECT approx_percentile(col, 0.5) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
+-------------------------------+
| approx_percentile(col, 0.5BD) |
+-------------------------------+
| 6.25                          |
+-------------------------------+
  1. 计算去重后数据集中的中位数(50%分位数):
SELECT approx_percentile(DISTINCT col, 0.5) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
+----------------------------------------+
| approx_percentile(DISTINCT col, 0.5BD) |
+----------------------------------------+
| 7.0                                    |
+----------------------------------------+
  1. 计算数据集中的 25% 分位数:
SELECT approx_percentile(col, 0.25) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
+--------------------------------+
| approx_percentile(col, 0.25BD) |
+--------------------------------+
| 6.0                            |
+--------------------------------+
  1. 计算数据集中的 75% 分位数:
SELECT approx_percentile(col, 0.75) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
+--------------------------------+
| approx_percentile(col, 0.75BD) |
+--------------------------------+
| 9.0                            |
+--------------------------------+

总结

APPROX_PERCENTILE 函数为用户提供了一种快速计算数据集近似百分位数的方法。通过调整 percentage 参数,用户可以轻松获取不同百分位数的数值,从而更好地分析和理解数据。在使用该函数时,请注意确保数据类型匹配,并且 percentage 参数值在有效范围内。

联系我们
预约咨询
微信咨询
电话咨询