SQL的聚合与排序

来源:互联网 发布:手机相册软件下载 编辑:程序博客网 时间:2024/05/21 07:58

所谓聚合,就是将多行汇总为一行。用于合计的函数称为聚合函数,在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子句中不能使用列的编号。

原创粉丝点击