
# percentile
percentile函数用于计算精确百分位数，适用于小数据量。先对指定列升序排列，然后取第p位百分数的精确值。
#### 命令格式
```
percentile(colname,DOUBLE p)
```
#### 参数说明
表1参数说明 
| 参数      | 是否必选 | 参数类型     | 说明                                                                                         |
|:---|:---|:---|:---|
| colname | 是    | STRING类型 | 代表需要排序的列名。 列中元素只能为整数类型。 |
| p       | 是    | DOUBLE类型 | 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.0999999999999996。
```
select percentile(int_test,0.7) FROM int_test;
```
返回3.997。
```
select percentile(int_test,0.999) FROM int_test;
```
返回2.5。
```
select percentile(int_test,0.5) FROM int_test;
```
返回\[1.3,1.9,2.5,2.8,3.7\]。
```
select percentile (int_test,ARRAY(0.1,0.3,0.5,0.6,0.9)) FROM int_test;
```
