更新时间: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 | +------------+------------+
父主题: 聚合函数