Mysql的分组查询和统计计算

这篇具有很好参考价值的文章主要介绍了Mysql的分组查询和统计计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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://www.toymoban.com/news/detail-601257.html

到了这里,关于Mysql的分组查询和统计计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包