聚合函数:就是按照一定的规则将多行(Row)数据汇总成一行的函数,对数据进行汇总前,还可以按特定的列(coloumn)将数据进行分组(group by)再汇总,然后按照再次给定的条件进行筛选

一:Count函数

1 SELECT COUNT(Birthday) FROM customer
2 SELECT COUNT(*) FROM customer
3 SELECT COUNT(1) FROM customer


1和2区别:使用具体列名作为参数,该列不会计算该列的null值计算在Count之内
2和3都会计算null,并且获取全部的数量
在count内也可以使用 distinct将每一列的每个相同的值只计算一次数量

二:Avg(),Sum(),Max()和Min()函数
这几个函数除了功能不同,语法和参数都相同

having子句:
having子句后面不能跟在select语句中出现的别名,而必须将select语句内的表达式再写一遍
也就是说:having子句后面不能跟 在select语句中出现的别名,或者变量名
当然having子句最强大的地方在于其可以使用聚合函数作为表达式,这是where子句不允许的

使用好聚合函数可以将很多放在应用程序业务层的任务转到数据库来做,这对性能和维护有很大好处