第三章 集合与排序 3-2 对表进行分组

一、GROUP BY 子句
 
在GROUP BY子句中指定的列称为聚合键或分组列。
 
二、聚合键中包含NULL的情况
当聚合键中包含NULL时,也会将NULL作为一组特定的数据。
聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。
 
三、使用WHERE子句时GROUP BY的执行结果
GROUP BY和 WHERE并用时 SELECT 的执行顺序:
FROM ---WHERE ---GROUP BY---- SELECT
 
四、与聚合函数和GROUP BY子句有关的常见错误
1、常见错误一❎在SELECT子句中书写了多余的列。【考虑语句的执行顺序】
实际上,使用聚合函数时,SELECT子句中只能存在以下三种元素:
(1)常数
(2)聚合函数
(3)GROUP BY 子句中指定的列名(也就是聚合键)
 
2、常见错误二❎在GROUP BY子句中书写了列的别名【考虑语句的执行顺序】
在GROUP BY子句中是不能使用SELECT子句中定义的别名。
注:在MySQL、PostgreSQL中不会发生错误。
 
3、常见错误三❎GROUP BY子句中的结果能排序吗?
GROUP BY子句结果的显示是无序的。
 
4、常见错误四❎在WHERE子句中使用聚合函数。【考虑语句的执行顺序即可得知这种做法是错误的】
只有在SELECT子句和HAVING子句以及ORDER BY子句中使用聚合函数。
 
五、DISTINCT 和GROUP BY
在“想要删除选择结果中的重复记录时”使用DISTINCT
在“想要计算汇总结果”时使用GROUP BY

猜你喜欢

转载自www.cnblogs.com/mumulin99/p/9833532.html
今日推荐