更新时间:2026-07-03 GMT+08:00
分享

percentile_approx

功能描述

percentile_approx函数用于计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数最靠近的值。

语法格式

percentile_approx(DOUBLE col, p [, B])

参数说明

参数

是否必选

说明

col

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

p

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

B

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

返回值说明

返回DOUBLE类型的值。

示例

  • 计算所有商品库存(items)的0.5百分位,精确度100。命令示例如下:假设列int_test中的元素为1、2、3、4,类型为INT类型。
    select PERCENTILE_APPROX(items,0.5,100) from warehouse; 

    返回结果如下:

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

    返回结果如下:

    +------------+------------+
    | warehouseId| _c1        |
    +------------+------------+
    | city1    | 3     |
    | city2    | 20     |
    | city3    | 200     |
    +------------+------------+

相关文档