更新时间:2024-05-28 GMT+08:00

percentile_approx

percentile_approx函数用于返回组内数字列近似的第p位百分数(包括浮点数)。

命令格式

percentile_approx(DOUBLE col, p [, B])

参数说明

表1 参数说明

参数

是否必选

说明

col

数据类型为数值的列。其他类型返回NULL。

p

0<=P<=1,否则返回NULL。

B

参数B控制近似的精确度,B值越大,近似度越高,默认值为10000。当列中非重复值的数量小于B时,返回精确的百分数。

返回值说明

返回DOUBLE类型的值。

示例代码

  • 计算所有商品库存(items)的 0.5 百分位,精确度100。命令示例如下:
    select PERCENTILE_APPROX(items,0.5,100) from warehouse; 

    返回结果如下:

    +------------+
    | _c0        |
    +------------+
    | 521        |
    +------------+
  • 与group by配合使用,对所有商品按照仓库(warehourseId)进行分组,并计算同组商品库存(items)的 0.5 百分位,精确度100。命令示例如下:
    select warehourseId, PERCENTILE_APPROX(items, 0.5, 100) from warehourse group by warehourseId; 

    返回结果如下:

    +------------+------------+
    | warehouseId| _c1        |
    +------------+------------+
    | beijing    | 499        |
    | shanghai   | 354        |
    | hangzhou   | 565        |
    +------------+------------+