创建数据组
在没有进行数据分组之前,所有聚合函数是将结果集作为一个大的信息组进行处理。但是,有时,则需要将表的信息划分为较小的组,可以用 GROUP BY 子句实现。
原则
- 使用 WHERE 子句,可以在划分行成组以前过滤行。
- 如果有WHERE子句,那么GROUP BY 子句必须在WHERE的子句后面。
- 在 GROUP BY 子句中必须包含列。
GROUP BY 子句
下面是包含一个 GROUP BY 子句 SELECT 语句的求值过程:
- SELECT 子句指定要返回的列:
- 在 EMPLOYEES 表中的部门号− GROUP BY 子句中指定分组的所有薪水的平均值− FROM 子句指定数据库必须访问的表:EMPLOYEES 表。
- WHERE 子句指定被返回的行。因为无 WHERE 子句默认情况下所有行被返回。
- GROUP BY 子句指定行怎样被分组。行用部门号分组,所以 AVG 函数被应用于薪水列,以计算每个部门的平均薪水。
示例:计算每个部门的员工总数。
SELECT DEPARTMENT_ID,COUNT(*)
FROM employees
GROUP BY DEPARTMENT_ID;