25
阿里云
聚合函数__函数_SQL语法参考_云数据库 OceanBase-阿里云
聚合函数对一组值执行计算并返回单一的值。聚合函数忽略空值。聚合函数经常与SELECT语句的GROUP BY子句一同使用。
所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。
在OceanBase的聚合函数中,Value表达式只能出现一个。例如:不支持COUNT(c1, c2),仅支持COUNT(c1)。
AVG(([DISTINCT] expr)
返回指定组中的平均值,空值被忽略。DISTINCT选项可用于返回expr的不同值的平均值。若找不到匹配的行,则AVG()返回NULL。
Oceanbase>select * from oceanbasetest;
+----+------+------+
| id | ip | ip2 |
+----+------+------+
| 1 | 4 | NULL |
| 3 | 3 | NULL |
| 4 | 3 | NULL |
+----+------+------+
3 rows in set (0.01 sec)
Oceanbase>select avg(ip2), avg(ip), avg(distinct(ip)) from oceanbasetest;
+----------+---------+-------------------+
| avg(ip2) | avg(ip) | avg(distinct(ip)) |
+----------+---------+-------------------+
| NULL | 3.3333 | 3.5000 |
+----------+---------+-------------------+
1 row in set (0.00 sec)
Oceanbase>select avg(distinct(ip)),avg(ip),avg(ip2) from oceanbasetest;
+-------------------+---------+----------+
| avg(distinct(ip)) | avg(ip) | avg(ip2) |
+-------------------+---------+----------+
| 3.5000 | 3.3333 | NULL |
+-------------------+---------+----------+
1 row in set (0.00 sec)
COUNT([DISTINCT] expr)
COUNT([DISTINCT] expr)返回SELECT语句检索到的行中非NULL值的数目。若找不到匹配的行,则COUNT()返回0。DISTINCT选项可用于返回expr的不同值的数目。
COUNT(*)的稍微不同之处在于,它返回检索行的数目,不论其是否包含NULL值。
Oceanbase>select * from oceanbasetest;
+----+------+------+
| id | ip | ip2 |
+----+------+------+
| 1 | 4 | NULL |
| 3 | 3 | NULL |
| 4 | 3 | NULL |
+----+------+------+
3 rows in set (0.00 sec)
Oceanbase>select count(ip2), count(ip), count(distinct(ip)), count(*) from oceanbasetest;
+------------+-----------+---------------------+----------+
| count(ip2) | count(ip) | count(distinct(ip)) | count(*) |
+------------+-----------+---------------------+----------+
| 0 | 3 | 2 | 3 |
+------------+-----------+---------------------+----------+
1 row in set (0.00 sec)
MAX([DISTINCT] expr)
返回指定数据中的最大值。
MAX()的取值可以是一个字符串参数;在这些情况下,它们返回最大字符串值。DISTINCT关键字可以被用来查找expr的不同值的最大值,这产生的结果与省略DISTINCT 的结果相同。
假设表a有三行数据:id=1,num=10;id=2,num=20;id=3,num=30。
Oceanbase>SELECT MAX(num) FROM a;
+-----------------+
| MAX(num) |
+-----------------+
| 30 |
+-----------------+
1 row in set (0.00 sec)
MIN([DISTINCT] expr)
返回指定数据中的最小值。
MIN()的取值可以是一个字符串参数;在这些情况下,它们返回最小字符串值。DISTINCT关键字可以被用来查找expr 的不同值的最小值,然而,这产生的结果与省略DISTINCT 的结果相同。
假设表a有三行数据:id=1,num=10;id=2,num=20;id=3,num=30。
Oceanbase>SELECT MIN(num) FROM a;
+----------------+
| MIN(num) |
+----------------+
| 10 |
+----------------+
1 row in set (0.00 sec)
SUM([DISTINCT] expr)
返回expr 的总数。若返回集合中无任何行,则SUM()返回NULL。DISTINCT关键字可用于求得expr不同值的总和。
若找不到匹配的行,则SUM()返回NULL。
Oceanbase>select * from oceanbasetest;
+------+------+------+
| id | ip | ip2 |
+------+------+------+
| 1 | 4 | NULL |
| 3 | 3 | NULL |
| 4 | 3 | NULL |
+------+------+------+
3 rows in set (0.00 sec)
Oceanbase>select sum(ip2),sum(ip),sum(distinct(ip)) from oceanbasetest;
+----------+---------+-------------------+
| sum(ip2) | sum(ip) | sum(distinct(ip)) |
+----------+---------+-------------------+
| NULL | 10 | 7 |
+----------+---------+-------------------+
1 row in set (0.00 sec)
GROUP_CONCAT([DISTINCT] expr)
该函数返回带有来自一个组的连接的非NULL值的字符串结果。
语法
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
举例
Oceanbase>select * from book; //表book(书编号,书名,出版社)+--------+--------------------------------+-----------------------------+
| bookid | bookname | publishname |
+--------+--------------------------------+-----------------------------+
| 1 | git help | alibaba group publisher |
| 2 | MySQL性能优化 | 浙江大学图文出版社 |
| 3 | JAVA编程指南 | 机械工业出版社 |
| 3 | JAVA编程指南 | 机械工业出版社 |
| 4 | 大规模分布式存储系统 | 机械工业出版社 |
+--------+--------------------------------+-----------------------------+
5 rows in set (0.00 sec)
//查找书名信息
Oceanbase>select group_concat(bookname) from book group by bookname;
+-----------------------------------+
| group_concat(bookname) |
+-----------------------------------+
| git help |
| JAVA编程指南,JAVA编程指南 |
| MySQL性能优化 |
| 大规模分布式存储系统 |
+-----------------------------------+
4 rows in set (0.00 sec)
//查找书名信息,书名唯一
Oceanbase>select group_concat(distinct(bookname)) from book group by bookname;
+----------------------------------+
| group_concat(distinct(bookname)) |
+----------------------------------+
| git help |
| JAVA编程指南 |
| MySQL性能优化 |
| 大规模分布式存储系统 |
+----------------------------------+
4 rows in set (0.01 sec)
//查找书名和出版社信息,以书名分组,出版社信息降序排序显示
Oceanbase>select bookname, group_concat(publishname order by publishname desc separator ';' ) from book group by bookname;
+--------------------------------+---------------------------------------------------------------------+
| bookname | group_concat(publishname order by publishname desc separator ';' ) |
+--------------------------------+---------------------------------------------------------------------+
| git help | alibaba group publisher |
| JAVA编程指南 | 机械工业出版社;机械工业出版社 |
| MySQL性能优化 | 浙江大学图文出版社 |
| 大规模分布式存储系统 | 机械工业出版社 |
+--------------------------------+---------------------------------------------------------------------+
4 rows in set (0.00 sec)
最后更新:2016-11-23 16:03:54
上一篇:
转换函数__函数_SQL语法参考_云数据库 OceanBase-阿里云
下一篇:
数学函数__函数_SQL语法参考_云数据库 OceanBase-阿里云
CID 投递统计__发布订阅统计接口_Open API_消息队列 MQ-阿里云
恢复直播流推送__直播流操作接口_API 手册_CDN-阿里云
弹性Web托管如何解析域名__产品相关问题_使用问题_弹性 Web 托管-阿里云
创建只读实例__扩展实例_快速入门(MySQL)_云数据库 RDS 版-阿里云
修改连接串__实例管理_API 参考_云数据库 RDS 版-阿里云
GetBucketWebsite__关于Bucket的操作_API 参考_对象存储 OSS-阿里云
DescribeLoadBalancerHTTPListenerAttribute__Listener相关API_API 参考_负载均衡-阿里云
TXC 简介__TXC for EDAS_二方服务_企业级分布式应用服务 EDAS-阿里云
云服务器 ECS实例生命周期
步骤4:推送云产品__快速入门_证书服务-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云