image.png
    创建数据组
    在没有进行数据分组之前,所有聚合函数是将结果集作为一个大的信息组进行处理。但是,有时,则需要将表的信息划分为较小的组,可以用 GROUP BY 子句实现。

    image.png
    原则

    • 使用 WHERE 子句,可以在划分行成组以前过滤行。
    • 如果有WHERE子句,那么GROUP BY 子句必须在WHERE的子句后面。
    • 在 GROUP BY 子句中必须包含列。

    image.png
    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;