下面是一些示例:
USE pubs SELECT type, AVG(price) FROM titles WHERE royalty = 10 GROUP BY type
下面是结果集:
type ------------ -------------------------- business 17.31 popular_comp 20.00 psychology 14.14 trad_cook 17.97 (4 row(s) affected) USE pubs SELECT type, AVG(price) FROM titles WHERE royalty = 10 GROUP BY ALL type
下面是结果集:
type ------------ -------------------------- business 17.31 mod_cook (null) popular_comp 20.00 psychology 14.14 trad_cook 17.97 UNDECIDED (null) (6 row(s) affected)
第一个查询只为取得 %10 版税的那些书籍产生组。由于没有含 10% 版税的现代烹调书籍,因此结果中没有 mod_cook 类型的组。
第二个查询为所有类型均生成组,包括现代烹调书籍和 UNDECIDED,即使现代烹调书籍组不包含任何符合 WHERE 子句中指定的条件的行。
对于没有符合条件的行的组,容纳聚合值的列(平均价格)为 NULL。
本文通过两个SQL查询示例展示了如何使用GROUP BY语句来对数据进行分组,并对比了使用GROUP BY与GROUP BY ALL的区别。具体而言,示例说明了当数据集中不存在符合条件的记录时,如何仍能展示该分组及其NULL聚合值。
1282

被折叠的 条评论
为什么被折叠?



