MaxCompute用户指南:SQL:内建函数:聚合函数-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

MaxCompute用户指南:SQL:内建函数:聚合函数

行者武松 2017-10-23 17:29:35 2165


聚合函数,其输入与输出是多对一的关系,即将多条输入记录聚合成一条输出值。可以与SQL 中的 group by 语句联用。

COUNT


函数声明
  1. bigint count([distinct|all] value)

函数说明
该函数用于计算记录数。
参数说明

  • distinct|all:指明在计数时是否去除重复记录,默认是 all,即计算全部记录,如果指定 distinct,则可以只计算唯一值数量。

  • value:可以为任意类型,当 value 值为 NULL 时,该行不参与计算,value 可以为 *,当 count(*) 时,返回所有行数。

返回值
返回 Bigint 类型。
示例如下
  1.     -- 如表tbla有列col1类型为bigint
  2.     +------+
  3.     | COL1 |
  4.     +------+
  5.     | 1    |
  6.     +------+
  7.     | 2    |
  8.     +------+
  9.     | NULL |
  10.     +------+
  11.     select count(*) from tbla;  -- 值为3,
  12.     select count(col1) from tbla;  -- 值为2

聚合函数可以和 group by 一同使用,例如:假设存在表 test_src,存在如下两列:key string 类型,value double 类型。
  1.     -- test_src的数据为
  2.     +-----+-------+
  3.     | key | value |
  4.     +-----+-------+
  5.     | a   | 2.0   |
  6.     +-----+-------+
  7.     | a   | 4.0   |
  8.     +-----+-------+
  9.     | b   | 1.0   |
  10.     +-----+-------+
  11.     | b   | 3.0   |
  12.     +-----+-------+
  13.     -- 此时执行如下语句,结果为:
  14.     select key, count(value) as count from test_src group by key;
  15.     +-----+-------+
  16.     | key | count |
  17.     +-----+-------+
  18.     | a   | 2     |
  19.     +-----+-------+
  20.     | b   | 2     |
  21.     +-----+-------+
  22.     -- 聚合函数将对相同key值得value值做聚合计算。下面介绍的其他聚合函数使用方法均与此例相同,不一一举例。


AVG


函数声明
  1.     double avg(double value)
  2.     decimal avg(decimal value)

函数说明
该函数用于计算平均值。
参数说明
value:Double 类型或 Decimal 类型,若输入为 String 或 Bigint,会隐式转换到 Double 类型后参与运算,其它类型抛异常。当 value 值为 NULL 时,该行不参与计算。Boolean 类型不允许参与计算。
返回值
若输入 Decimal 类型,返回 Decimal 类型,其他合法输入类型返回 Double 类型。
示例如下
  1.     -- 如表tbla有一列value,类型为bigint
  2.      +-------+
  3.      | value |
  4.      +-------+
  5.      | 1     |
  6.      | 2     |
  7.      | NULL  |
  8.      +-------+
  9.     -- 则对该列计算avg结果为(1+2)/2=1.5
  10.     select avg(value) as avg from tbla;
  11.     +------+
  12.     | avg  |
  13.     +------+
  14.     | 1.5  |
  15.     +------+


MAX


函数声明
  1.     max(value)

函数说明
该函数用于计算最大值。
参数说明
value:可以为任意类型,当列中的值为 NULL 时,该行不参与计算。Boolean 类型不允许参与运算。
返回值
返回值的类型与 value 类型相同。
示例如下
  1.     -- 如表tbla有一列col1,类型为bigint
  2.     +------+
  3.     | col1 |
  4.     +------+
  5.     | 1    |
  6.     +------+
  7.     | 2    |
  8.     +------+
  9.     | NULL |
  10.     +------+
  11.     select max(value) from tbla; -- 返回值为2


MIN


函数声明
  1.     MIN(value)

函数说明
该函数用于计算最小值。
参数说明
value:可以为任意类型,当列中的值为 NULL 时,该行不参与计算。Boolean 类型不允许参与计算。
示例如下
  1.     -- 如表tbla有一列value,类型为bigint
  2.     +------+
  3.     | value|
  4.     +------+
  5.     | 1    |
  6.     +------+
  7.     | 2    |
  8.     +------+
  9.     | NULL |
  10.     +------+
  11.     select min(value) from tbla; -- 返回值为1


MEDIAN


函数声明
  1.     double median(double number)
  2.     decimal median(decimal number)

函数说明
该函数用于计算中位数。
参数说明
number:Double 类型或者 Decimal 类型。若输入为 String 类型或 Bigint 类型,会隐式转换到 Double 类型后参与运算,其他类型报错。
返回值
返回 Double 类型或者 Decimal 类型。

STDDEV


函数声明
  1.     double stddev(double number)
  2.     decimal stddev(decimal number)

函数说明
该函数用于计算总体标准差。
参数说明
number:Double 类型或者 Decimal 类型。若输入为 String 类型或 Bigint 类型,会隐式转换到 Double 类型后参与运算,其他类型时报错。
返回值
返回 Double 类型或者 Decimal 类型。

STDDEV_SAMP


函数声明
  1.     double stddev_samp(double number)
  2.     decimal stddev_samp(decimal number)

函数说明
该函数用于计算样本标准差。
参数说明
number:Double 类型或者 Decimal 类型。若输入为string类型或bigint类型会隐式转换到double类型后参与运算,其他类型时报错。
返回值
返回 Double 类型或者 Decimal 类型。

SUM


函数声明
  1.     sum(value)

函数说明
该函数用于计算汇总值。
参数说明
value:Double、Decimal 或 Bigint 类型,若输入为 String 会隐式转换到 Double 类型后参与运算,当列中的值为 NULL 时,该行不参与计算。Boolean 类型不允许参与计算。
返回值
输入为 Bigint 时,返回 Bigint,输入为 Double 或 String 时,返回 Double 类型。
示例如下
  1.     -- 如表tbla有一列value,类型为bigint
  2.     +------+
  3.     | value|
  4.     +------+
  5.     | 1    |
  6.     +------+
  7.     | 2    |
  8.     +------+
  9.     | NULL |
  10.     +------+
  11.     select sum(value) from tbla; -- 返回值为3


WM_CONCAT


函数声明
  1.     string wm_concat(string separator, string str)

函数说明
该函数用指定的 spearator 做分隔符,链接 str 中的值。
参数说明

  • separator:String 类型常量,分隔符。其他类型或非常量将引发异常。

  • str:String 类型,若输入为 Bigint,Double 或者 Datetime 类型,会隐式转换为 String 后参与运算,其它类型报异常。

返回值
返回 String 类型。

备注:
语句select wm_concat(',', name) from test_src;中,若 test_src 为空集合,此条语句返回 NULL 值。


COLLECT_LIST


函数声明
  1. ARRAY  collect_list(col)

函数说明
该函数在给定 group 内,将 col 指定的表达式聚合为一个数组。
参数说明
col:表的某列,可为任意数据类型。
返回值
返回 ARRAY 类型。

COLLECT_SET


函数声明
  1. ARRAY  collect_list(col)

函数说明
该函数在给定 group 内,将 col 指定的表达式聚合为一个无重复元素的集合数组。
参数说明
col:表的某列,可为任意数据类型。
返回值
返回 ARRAY 类型。
MaxCompute聚合函数 sql用户指南内建函数 MaxCompute函数内建函数 maxcomput用户指南 MaxCompute用户指南
分享到
取消 提交回答
全部回答(0)
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

相似问题
最新问题