博客 Mysql的分组查询和统计计算

Mysql的分组查询和统计计算

   数栈君   发表于 2023-09-07 10:31  377  0

1.聚合函数


聚合函数实现数据的统计计算,用于计算表中的数据,返回单个计算结果。聚合函数包括COUNT、SUM、AVG、MAX、MIN等函数,下面分别介绍。

(1)COUNT函数

COUNT函数用于计算组中满足条件的行数或总行数。

语法格式:


COUNT ( { [ ALL | DISTINCT ] <表达式> } | * )

其中,ALL表示对所有值进行计算,ALL为默认值,DISTINCT指去掉重复值,COUNT函数用于计算时忽略NULL值。

【例6.12】求学生的总人数。

mysql> SELECT COUNT(*) AS 总人数

-> FROM student;

该语句采用COUNT(*)计算总行数,总人数与总行数一致。

查询结果:


+----------+

| 总人数 |

+----------+

| 6 |

+----------+

1 row in set (0.09 sec)

【例6.13】查询通信专业学生的总人数。

mysql> SELECT COUNT(*) AS 总人数

-> FROM student

-> WHERE speciality='通信';

该语句采用COUNT(*)计算总人数,并用WHERE子句指定的条件进行限定为201836。

查询结果:


+---------+

| 总人数 |

+---------+

| 3 |

+---------+

1 row in set (0.01 sec)


SUM和AVG函数


SUM函数用于求出一组数据的总和,AVG函数用于求出一组数据的平均值,这两个函数只能针对数值类型的数据。

语法格式:


SUM / AVG ( [ ALL | DISTINCT ] <表达式> )

其中,ALL表示对所有值进行计算,ALL为默认值,DISTINCT指去掉重复值,SUM / AVG函数用于计算时忽略NULL值。

MAX和MIN函数


MAX函数用于求出一组数据的最大值,MIN函数用于求出一组数据的最小值,这两个函数都可以适用于任意类型数据。

语法格式:


MAX / MIN ( [ ALL | DISTINCT ] <表达式> )

其中,ALL表示对所有值进行计算,ALL为默认值,DISTINCT指去掉重复值,MAX / MIN函数用于计算时忽略NULL值。

GROUP BY子句


GROUP BY子句用于指定需要分组的列。

语法格式:


GROUP BY [ ALL ] <分组表达式> [,…n]

其中,分组表达式通常包含字段名,ALL显示所有分组。

HAVING子句


HAVING子句用于对分组按指定条件进一步进行筛选,过滤出满足指定条件的分组。


语法格式:


[ HAVING <条件表达式> ]

其中,条件表达式为筛选条件,可以使用聚合函数。

当WHERE子句、GROUP BY子句、HAVING子句、ORDER BY子句在一个SELECT语句中时,执行顺序如下:

(1)执行WHERE子句,在表中选择行。

(2)执行GROUP BY子句,对选取行进行分组。

(3)执行聚合函数。

(4)执行HAVING子句,筛选满足条件的分组。

(5)执行ORDER BY子句,进行排序。

注意: HAVING子句要放在GROUP BY子句的后面,ORDERBY子句放在HAVING子句后面。




免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack


0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群