一、说明
聚合(Aggregate)函数的输入与输出是多对一的关系,即将多条输入记录聚合成一条输出值,可以与MaxCompute SQL中的group by语句配合使用。
二、MaxCompute SQL支持的聚合函数
函数 功能
AVG 计算平均值。
COUNT 计算记录数。
COUNT_IF 计算指定表达式为True的记录数。
MAX 计算最大值。
MIN 计算最小值。
MEDIAN 计算中位数。
STDDEV 计算总体标准差。
STDDEV_SAMP 计算样本标准差。
SUM 计算汇总值。
WM_CONCAT 用指定的分隔符连接字符串。
ANY_VALUE 在指定范围内任选一个值返回。
APPROX_DISTINCT 返回输入的非重复值的近似数目。
ARG_MAX 返回指定列的最大值对应行的列值。
ARG_MIN 返回指定列的最小值对应行的列值。
COLLECT_LIST 将指定的列聚合为一个数组。
COLLECT_SET 将指定的列聚合为一个无重复元素的数组。
COVAR_POP 计算指定两个数值列的总体协方差。
COVAR_SAMP 计算指定两个数值列的样本协方差。
NUMERIC_HISTOGRAM 统计指定列的近似直方图。
PERCENTILE 计算精确百分位数,适用于小数据量。
PERCENTILE_APPROX 计算近似百分位数,适用于大数据量。
VARIANCE/VAR_POP 计算指定数值列的方差。
VAR_SAMP 计算指定数值列的样本方差。
三、注意事项
升级到MaxCompute 2.0后,产品扩展了部分函数。如果您用到的函数涉及新数据类型(TINYINT、SMALLINT、INT、FLOAT、VARCHAR、TIMESTAMP或BINARY),在使用扩展函数时,需要执行如下语句开启新数据类型开关:
Session级别:如果使用新数据类型,您需要在SQL语句前加上语句set odps.sql.type.system.odps2=true;,并与SQL语句一起提交执行。
Project级别:Project Owner可根据需要对Project进行设置,等待10~15分钟后才会生效。命令如下。
setproject odps.sql.type.system.odps2=true;
对setproject的详细说明请参见项目空间操作。关于开启Project级别数据类型的注意事项,请参见数据类型版本说明。
在同一条SQL语句中同时使用多个聚合函数时,如果项目资源不足,会出现内存溢出问题。