GROUP BY 子句
SELECT <列名1>,<列名2>,<列名3>,……
FROM <表名>
GROUP BY <列名1>, <列名2>, <列名3>,……;
SELECT product_type, COUNT(*)
FROM Product
GROUP BY product_type;
在GROUP BY子句中指定的列称为聚合键或者分组列。
法则3-6
GROUP BY就像是切分表的一把刀
GROUP BY子句的书写位置也有严格要求,一定要写在FROM语句之后(如果有WHERE子句的话要写在WHERE子句之后)
子句的书写顺序(暂定)
1.SELECT –>2.FROM –>3.WHERE –>4.GROUP BY
法则3-7
SQL子句的顺序不能改变,也不能互相替换
法则3-8
聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来
法则3-9
使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名
法则3-10
在GROUP BY 子句中不能使用SELECT子句中定义的别名
法则3-11
GROUP BY 子句结果的显示是无序的
法则3-12
只有SELECT子句和HACING子句(以及ORDER BY子句)中能够使用聚合函数
DISTINCT和ORDER BY都能够删除后续列中的重复数据。除此之外,他们还都会吧NULL作为一个独立的结果返回,对多列使用时也会得到完全相同的结果。