SQL笔记(10)_第十章 数据排序与分组

时间:2022-03-30 23:17:20

第十章 数据排序与分组

1.数据分组

数据分组是按照逻辑次序把具有重复值的字段进行合并。

2.GROUP  BY 子句

(1)分组函数

典型的分组函数-也就是用于GROUP BY子句对数据进行划分的函数-包括AVG,MAX,MIN,SUM,COUNT。他们是第9章介绍的汇总函数,当时他们是用于单个值,现在他们将用于分组值。

(2)对选中的数据进行分组

被选中的字段(查询中SELECT之后的字段列表)才能在GROUP BY子句里引用,如果字段在SELECT语句里找不到,就不能用于GROUP BY子句。

(3)创建分组和使用汇总函数

SELECT语句在使用GROUP BY子句的时必须满足一定条件。

特别是被选中的字段必须出现在GROUP BY子句里,除了汇总函数。

GROUP BY子句里的字段不必与SELECT子句里的字段具有相同的次序。只要SELECT子句的字段名称是符合条件的,它的名称就必须出现在GROUP BY子句里。

(4)可以以整数代表字段名称

3.GROUP BY 和 ORDER BY

GROUP BY子句也可以和ORDER BY子句一样用于数据排序。

用GROUP BY子句实现排序的区别与缺点是:

所有被选中的,非汇总函数的字段必须列在GROUP BY子句里

除非需要使用汇总函数,否则使用GROUP BY子句排序通常是没有必要的。

4.CUBE和ROLLUP

关于CUBE和ROLLUP详见SQL笔记(10)_2_CUBE,ROLLUP,HAVING

5.HAVING子句

Having子句在SELECT子句里与GROUP BY子句联合使用时,用于高速GROUP BY子句在输出里包含哪些分组。Having对GROUP BY的作用相当于WHERE对于SELECT的作用。换句话说,WHERE子句设定被选择字段的条件,而Having子句设置GROUP BY子句形成分组的条件。因此,使用使用Having子句可以让结果包含或是去除整租数据。

SELECT 
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Having子句必须跟在GROUP BY子句之后,ORDER BY子句之前。

PS:

SQL笔记(10)_第十章 数据排序与分组