1sum、max 和 min 聚合函数
在数据库查询过程中,不仅只返回数据的基础信息,有时还需对这些数据进行统计和汇总。MySQL 提供了聚合函数,用于实现这些高级功能。
聚合函数用于对一组值进行计算并返回一个汇总值,使用聚合函数可以统计记录行数、计算某个字段值的总和以及这些值的最大值、最小值和平均值等。
函数名称 | 功能 |
sum | 返回选取的某列值的总和 |
max | 返回选取的某列的最大值 |
min | 返回选取的某列的最小值 |
avg | 返回选取的某列的平均值 |
count | 返回选取的某列或记录的行数 |
avg 函数
avg(column) 用于返回数字型字段 column 的平均值,注意:列值为 null 的字段不参与运算。
group by 子句
使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据(by)一定的规则进行分组(group)”,该子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。
group by 字段列表 [having 条件表达式 ]
多字段分组和 having 子句
group by 子句的分组字段是一个字段列表,即 MySQL 支持按多个字段进行分组。具体的分组策略:分组优先级从左至右,即先按第一个字段进行分组,然后在第一个字段值相同的记录中,再根据第二个字段的值进行分组, 依次类推。
示例
select company 公司 , number 营运车辆数 , truncate(avg(miles),1) 平均营运里程 from line group by company, number
总结
count 和 sum
函数的区别
:
sum 函数是对符合条件的记录的数值列求和,count 函数的值是满足查询条件的结果(或记录)个数。count(column) 用于统计 column 列不为 null 的记录个数。
如何对查询结果进行过滤之后再分组统计:
先使用 where 子句表达式对查询结果进行过滤筛选;然后,再使用 group by 子句对 where 子句的输出进行分组统计。
having 子句的用法:
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。