percentlie_approx
percentile_approx函数用于计算近似百分位数,适用于大数据量。先对指定列升序排列,然后取第p位百分数最靠近的值。
命令格式
percentile_approx (colname,DOUBLE p)
参数说明
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
colname |
是 |
STRING类型 |
代表需要排序的列名。 列中元素为DOUBLE类型。当列中元素非DOUBLE类型时,会隐式转换为DOUBLE类型后参与运算。 |
p |
是 |
DOUBLE类型 |
参数a的格式包括浮点数格式、整数格式、字符串格式。 参数p的范围为0-1。参数p的格式包括浮点数格式。 |
返回值说明
返回DOUBLE类型或ARRAY类型的值。
- 列名不存在时,返回报错。
- 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;