3-2 对表进行分组

    通过使用 聚合函数 和GROUP BY 子句,可以根据“商品种类”或 “登记日期”将表分割后再进行汇总


    • GROUP BY 子句 也和 SELECT 子句一样,可以通过逗号分隔指定多列

    • 另外,GROUP BY 子句的书写位置也有严格要求,一定要写在 FROM 子句之后(如有WHERE 子句的话需要写在WHERE 子句之后)


    子句的书写顺序

    1. SELECT
    2. FROM
    3. WHERE
    4. GROUP BY

    GROUP BY 和 WHERE 并用时 SELECT 语句的执行顺序
    FROM -> WHERE -> GROUP BY -> SELECT

    在SQL 语句中,书写顺序 和 执行顺序 并不相同,这也是 SQL难以理解的原因之一


    使用GROUP BY 时的注意点
    **

    • 在使用GROUP BY 子句时,SELECT 子句中不能出现聚合建之外的列名

      1. 当有GROUP BY 时,SELECT 后面只能跟三种,一个是常数(数字或者加引号的字符串),一个是聚合函数(SUM/AVG/MIN/MAX之类),一个是GROUP BY子句中指定的列名
    • SELECT 子句中的项目可以通过AS关键字来指定别名,但是,在GROUP BY子句中是不能使用别名的

                    这个是因为SQL语句在DBMS内部的执行顺序造成的- SELECT 子句在GROUP BY子句之后执行,在执行GROUP BY时,SELECT 子句中定义的别名,DBMS还不知道
      
    • GROUP BY 子句结果的显示是无序的