1、定义
聚集函数是以值是一个集合(集或者多重集)为输入、返回单个值得函数。SQL提供了五个固有聚集函数。
平均值:avg
最小值:min
最大值:max
总和:sum
计数:count
2.基本聚集
以上五个固有聚集函数都是属于基本聚集
3、分组聚集
如果希望将聚集函数作用在单个元组集上,也希望作用到一组元组集上,此时可以利用group by子句来实现。
group by 子句作用:对给出的一个或多个属性来构造分组,将属性上取值相同的元组分到同一组中。
4、having子句
有时候限定分组条件比对元组限定条件更有用。比如我们只对工资超过15000某一个系感兴趣。该条件并不针对某个元组,而是针对group by子句构成的分组。即是说,having子句是在分组之后才生效的,可以使用聚集函数。例如:
查询系平均工资再15000以上的。
包含聚集、group by 或者having子句的查询的含义可通过下述操作序列定义:
1、根据from子句计算出一个关系
2、如果出现where子句,where子句的谓词将应用到from子句的结果上
3、如果出现group by子句,满足where子句的元组通过group by子句形成分组。如果没有
group by子句,满足where谓词的整个元组集被当做一个分组
4、如果出现having子句,他将应用到每个分组上;不满足having子句谓词的分组将被抛弃。
5、select子句利用剩下的分组产生出查询结果中的元组,即每个分组上应用聚集函数来得到单个关系元组