一、对表进行聚合查询
    1、聚合函数
    COUNT (表中的行数) SUM AVG MAX MIN
    2、计算表中数据的行数
    SELECT COUNT(
    FROM Product;
    (COUNT函数的结果根据参数的不同而不同,COUNT(
    )会得到包含NULL的数据行球,而COUNT(<列名>)会得到NULL之外的数据行数)
    3、计算合计值
    SELECT SUM(列)
    FROM Product
    (聚合函数会将NULL排除在外,但COUNT(*)例外,并不会排除NULL)
    (MAX MIN函数适用于所有数据类型的列,SUM AVG函数只适用于数值类型的列)
    4、使用聚合函数删除重复值(关键字DISTINT)
    SELECT COUNT(DISTINCT product_type)
    FROM Product
    (想要计算值的种类时,可以在count函数的参数中使用DISTINCT)

    二、对表进行分组
    1、GROUP BY子句
    SELECT <列名>
    FROM<表名>
    GROUP BY<列名>
    (子句的书写顺序不能变:SELECT—FROM —WHERE —GROUP BY)
    2、聚合健中包含NULL的情况
    聚合健中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来
    3、使用WHERE子句时GROUP BY的执行结果
    SELECT <列名>
    FROM<表名>
    WHERE
    GROUP BY<列名>
    4、与聚合函数和GROUP BY子句有关的常见错误

    • 在SELECT子句中书写了多余的列

    (把聚合键之外的列名书写在SELECT子句之中)(使用GROUP BY子句时,SELECT子句中不能出现聚合链之外的列名)

    • 在GROUP BY子句中写了列的别名

    (在GROUP BY子句中不能使用SELECT子句中定义的别名)

    • GROUP BY子句的结果能排序吗(不能,是无序的)
    • 在WHERE子句中使用聚合函数

    (只有SELECT子句和HAVING子句,以及ORDER BY子句中能够使用聚合函数)

    三、为聚合结果指定条件
    1、HAVING子句(对集合指定条件)
    SELECT <>
    FROM<>
    GROUP BY<>
    HAVING<分组结果对应的条件>
    【WHERE子句=指定行所对应的条件;HAVING子句=指定组所对应的条件】

    四、对查询结果进行排序
    1、ORDER BY子句(排序默认使用升序进行排列)
    SELECT <>
    FROM<>
    ORDER BY<排序基准列>
    (该子句通常写在SELECT语句的末尾)
    (在子句列名后面使用DESC关键字,为降序)
    (ASC和DESC是上升的和下降的这两个单词的缩写)
    (排序键中包含NULL时,会在开头或末尾进行汇总)
    (在ORDER BY子句中可以使用SELECT子句中未使用的列和聚合函数)