MySQL聚合函数与分组查询详解:SUM, MAX/MIN, AVG, COUNT, GROUP BY, HAVING

2 下载量 180 浏览量 更新于2024-08-30 收藏 1.13MB PDF 举报
本章主要介绍了MySQL中的聚合函数和分组查询,包括SUM、MAX、MIN、AVG、COUNT函数的使用,以及GROUP BY子句、HAVING子句的应用。 6.1 聚合函数 聚合函数是SQL中用于处理一组数据并返回单一汇总值的函数。本节详细讲解了SUM、MAX、MIN三种聚合函数。 6.1.1 聚合函数介绍 聚合函数允许我们对一列或多列的数据进行统计,返回一个代表整个集合的值。例如: - SUM()函数计算指定列的总和。 - MAX()函数返回指定列的最大值。 - MIN()函数返回指定列的最小值。 6.1.2 SUM函数 SUM函数常用于求和,如计算所有线路的总里程数,或者特定条件下的线路总里程数。 6.1.3 MAX/min函数 MAX和MIN函数则用于找出最大值和最小值,比如找出所有线路中的最长和最短里程,或查询年龄最大的公交司机的出场次数。 6.2 AVG和COUNT函数 6.2.1 AVG函数 AVG()函数计算指定列的平均值,可用于了解数据集的平均特征。 6.2.2 COUNT函数 COUNT()函数返回指定列的行数,可以用来统计记录的数量。可以用于计算所有记录,也可以针对满足特定条件的记录进行计数。 6.3 分组查询GROUP BY子句 6.3.1 GROUP BY子句 GROUP BY用于将数据按一列或多列进行分组,以便对每个分组应用聚合函数。 6.3.2 创建分组 通过指定列名,可以将数据按指定列的值进行分组。 6.3.3 比较ORDER BY和GROUP BY ORDER BY用于排序结果,而GROUP BY用于数据分组,两者作用不同但常配合使用。 6.3.4 使用WHERE子句过滤数据 在使用GROUP BY之前,可以通过WHERE子句过滤数据,只对满足条件的行进行分组。 6.3.5 非聚合函数列与分组函数 在分组函数中,如果使用非聚合函数列,SQL会报错,除非这些列也在GROUP BY子句中。 6.4 多字段分组和HAVING子句 6.4.1 多字段分组 可以同时根据多个列的值进行分组,提供更细致的数据分析。 6.4.2 HAVING子句 HAVING子句类似于WHERE,但它用于分组后过滤数据,只能用于聚合函数的条件筛选。 6.4.3 WHERE子句与HAVING子句的比较 WHERE子句在数据分组前过滤,HAVING子句在分组后过滤,两者作用范围不同。 6.4.4 GROUP BY子句的WITH ROLLUP选项 WITH ROLLUP提供汇总级别的额外汇总行,包括所有分组和总的汇总。 总结,本章详细介绍了MySQL中进行数据聚合和分组查询的方法,帮助我们更有效地对大量数据进行统计和分析,为数据分析和决策提供支持。