数据分组(GROUP BY)
创建数据组
在没有进行数据分组之前,所有聚合函数是将结果集作为一个大的信息组进行处理。但是,有时,则需要将表的信息划分为较小的组,可以用 GROUP BY 子句实现。
GROUP BY 子句语法
SELECT column, group function(column)
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];
原则
- 使用 WHERE 子句,可以在划分行成组以前过滤行。
- 如果有WHERE子句,那么GROUP BY 子句必须在WHERE的子句后面。
- 在 GROUP BY 子句中必须包含列。
使用 GROUP BY 子句
在SELECT列表中的不在组函数中的所有列必须在GROUP BY子句中
SELECT DEPARTMENT_ID, AVG(SALARY)
FROM employees
GROUP BY DEPARTMENT_ID;
下面是包含一个 GROUP BY 子句 SELECT 语句的求值过程:
- SELECT 子句指定要返回的列:
- 在 EMPLOYEES 表中的部门号
− GROUP BY