所谓聚合,就是将多行汇总为一行。用于合计的函数称为聚合函数,在SQL中有很多用于合计的函数,常用的有以下五种:
count:计算表的记录数。
SUM:计算表中数值列的数据合计值。
AVG:计算表中数值列的数据平均值。
MAX:计算表中任意列中数据的最大值。
MIN:计算表中任意列中数据的最小值。
说明:①聚合函数会对NULL以外的对象进行合计,但是count函数例外。使用count(*)可以查出包含NULL在内的全部数据行数。
②MAX、MIN函数几乎适用于所有数据类型的列。SUM、AVG函数只适用于数值类型的列。
③关于AVG函数。如果表中A列有8条记录,其中2条NULL列,那么AVG(A)的结果等同于SUM(A)/ 6
对表进行分组
使用GROUP BY子句可将表中的数据进行分割。聚合函数和GROUP BY子句可以将表分割后在进行聚合。
聚合键中包含NULL时,在结果中会以空(NULL)的形式表现出来。
使用聚合函数和GROUP BY子句需要注意以下几点
①只能写在select子句中
②GROUP BY子句中不能使用select子句中列的别名
③GROUP BY子句中聚合结果是无序的
④where子句中不能使用聚合函数
⑤select子句中,除了聚合键外,其他的列都必须出现在GROUP BY子句中。
为聚合结果指定条件
having子句可以对聚合结果指定条件。
使用having子句时,select语句的执行顺序是:
from→where→group by→having→select
需要注意的是,having子句必须写在group by子句之后
使用order by子句对查询结果进行排序,ASC:升序,DESC:降序。
order by子句可以指定多个排序键。
order by子句中可以使用select子句中列的别名。
order by子句可以使用select子句中未出现的列,或者聚合函数。
order by子句中不能使用列的编号。