这里介绍SQL中的聚合函数Aggregate Function
概述
聚合函数是多对一函数。它们使用多个记录的值作为输入、计算、转换返回为单个值。聚合函数通常与GROUP BY子句一起使用,以对数据进行分组并对每个组下的若干条记录应用聚合函数。这样可以在一个查询中得到每个组汇总的统计结果。这里建立一张表,以供后续测试
1 | CREATE TABLE `stu_info` ( |
常用聚合函数
sum函数
用于计算指定列的数值之和
1 | SELECT SUM(age) as my_total_age_1 FROM stu_info; |
GROUP BY 子句
对于用于分组的列,例如下面的sex列。由于在GROUP BY子句中作为分组依据列。故可以在SELECT子句中直接引用
对于不是用于分组的列,不可以SELECT子句中直接引用。例如下面的age列。需要使用聚合函数对相应分组下所有记录的该列数据进行汇总后,才可以在SELECT子句中使用
1 | SELECT sex, SUM(age) as my_total_age_2 FROM stu_info GROUP BY sex; |
count函数
用于计算行 或 指定列的记录总数
1 | SELECT COUNT(*) as my_count_1 FROM stu_info; |
avg函数
用于计算指定列的平均值
1 | SELECT AVG(age) as my_avg_age_1 FROM stu_info; |
max函数
用于计算指定列的最大值
1 | SELECT MAX(age) as my_max_age_1 FROM stu_info; |
min函数
用于计算指定列的最小值
1 | SELECT MIN(age) as my_min_age_1 FROM stu_info; |
HAVING 子句
HAVING子句需要在有GROUP BY子句的条件下オ可以使用。在HAVING子句中可使用聚合函数对分组后的各组数据进行过滤。其WHERE子句的不同点在于,WHERE子句是对原始的数据进行过滤
1 | -- 先按sex性别进行分组,再统计各分组对平均年龄 |