
# percentile_approx
percentile_approx函数用于计算近似百分位数，适用于大数据量。先对指定列升序排列，然后取第p位百分数最靠近的值。
#### 命令格式
```
percentile_approx (colname,DOUBLE p)
```
#### 参数说明
表1参数说明 
| 参数      | 是否必选 | 参数类型     | 说明                                                                                                                                        |
|:---|:---|:---|:---|
| colname | 是    | STRING类型 | 代表需要排序的列名。 列中元素为DOUBLE类型。当列中元素非DOUBLE类型时，会隐式转换为DOUBLE类型后参与运算。 |
| p       | 是    | DOUBLE类型 | 参数a的格式包括浮点数格式、整数格式、字符串格式。 参数p的范围为0-1。参数p的格式包括浮点数格式。           |
   
#### 返回值说明
返回DOUBLE类型或ARRAY类型的值。
![](https://support.huaweicloud.com/sqlref-spark-dli/public_sys-resources/note_3.0-zh-cn.png)
- 列名不存在时，返回报错。
- p为NULL或在\[0,1\]之外时，返回报错。
 
#### 示例代码
假设列int_test中的元素为1、2、3、4，类型为INT类型。
返回3。
```
select percentile_approx(int_test,0.7) FROM int_test;
```
返回3。
```
select percentile_approx(int_test,0.75) FROM int_test;
```
返回2。
```
select percentile_approx(int_test,0.5) FROM int_test;
```
返回\[1,2,2,3,4\]。
```
select percentile_approx (int_test,ARRAY(0.1,0.3,0.5,0.6,0.9)) FROM int_test;
```
