APPROX_PERCENTILE

功能描述

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

参数说明

  1. col
    col
    : 需要计算百分位数的列名。该列应包含数值类型的数据,如
    TINYINT
    TINYINT
    SMALLINT
    SMALLINT
    INT
    INT
    BIGINT
    BIGINT
    FLOAT
    FLOAT
    DOUBLE
    DOUBLE
    DECIMAL
    DECIMAL
  2. percentage
    percentage
    : 一个
    DOUBLE
    DOUBLE
    类型的常量,表示所需计算的百分位数。该值应在 [0.0, 1.0] 区间内。

返回结果

函数返回值为

DOUBLE
DOUBLE
类型。如果指定了
DISTINCT
DISTINCT
关键字,则计算结果将基于去重后的数据集进行。需要注意的是,
NULL
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 | +----------------------------------------+

  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 | +--------------------------------+

  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 | +--------------------------------+

总结

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

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