MaxComputeSQL支持的聚合函数的命令格式,参数及示例

您所在的位置:网站首页 百分位数的计算方法及示例 MaxComputeSQL支持的聚合函数的命令格式,参数及示例

MaxComputeSQL支持的聚合函数的命令格式,参数及示例

2023-06-13 18:19| 来源: 网络整理| 查看: 265

命令格式。double percentile(bigint ,

) --以数组形式返回多个百分位精确计算结果。 array percentile(bigint , array( [, ...]))命令说明。

计算精确百分位数,适用于小数据量。先对指定列升序排列,然后取精确的第p位百分数。p必须在0和1之间。percentile是从编号0开始计算,例如某列数据为100、200、300,列数据的编号顺序为0、1、2,计算该列的0.3百分位点,percentile结果是2×0.3=0.6,即值位于编号0和1之间,结果为100+(200-100)×0.6=160。此函数为MaxCompute 2.0扩展函数。

参数说明。colname:必填。值为BIGINT类型的列。p:必填。需要精确的百分位数。取值为[0.0,1.0]。返回值说明。

返回DOUBLE或ARRAY类型。

示例。示例1:计算0.3百分位的薪资(sal)。命令示例如下:select percentile(sal, 0.3) from emp;返回结果如下:+------------+ | _c0 | +------------+ | 1290.0 | +------------+示例2:与group by配合使用,对所有职工按照部门(deptno)进行分组,并计算同组职工0.3百分位的薪资(sal)。命令示例如下:select deptno, percentile(sal, 0.3) from emp group by deptno;返回结果如下:+------------+------------+ | deptno | _c1 | +------------+------------+ | 10 | 1875.0 | | 20 | 1475.0 | | 30 | 1250.0 | +------------+------------+示例3:与group by配合使用,对所有职工按照部门(deptno)进行分组,并计算同组职工0.3、0.5、0.8百分位的薪资(sal)。命令示例如下:set odps.sql.type.system.odps2=true; select deptno, percentile(sal, array(0.3, 0.5, 0.8)) from emp group by deptno;返回结果如下:+------------+------------+ | deptno | _c1 | +------------+------------+ | 10 | [1875.0,2450.0,5000.0] | | 20 | [1475.0,2975.0,3000.0] | | 30 | [1250.0,1375.0,1600.0] | +------------+------------+


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3