形式:
groupby字段名1,字段名2,......
说明:
1,用于将从数据源中取得的满足where条件的数据,进行某种标准(字段)的分类(分组);
2,分组之后,要有一个重要理念:select出来的数据,每一行,就是代表“一组”!!!即该行的每一个字段的值,都应该是对该“组”的信息描述!!!
3,还可以使用Asc或者Desc来设定按该组的值的大小进行正序(默认情况)或倒序排列。
特别注意:
如果使用groupby子句,就需要考虑select子句中的“可出现字段”——它会受groupby子句的影响!
基本上,此时,select子句中,只能出现如下3种数据(字段)了:
1,该分组字段本身;
2,每一组中的原始数据行数:count(*)就可以得到!
3,每一组中“原始数字字段”的“统计信息”(又叫聚合信息),只包括如下几个:
avg(字段名):求得该组的平均值;
max(字段名):求得该组的最大值;
min(字段名):求得该组的最小值;
sum(字段名):求得该组的总和值;
举例:
对于原始数据(使用source导入文件《案例:电子商店.sql》):
对其按“品牌”进行分组:
结果为:
可见,分组之后,我们要有这个观念:我的眼里只有组(信息);
实际上,对一个表,如果不进行分组(group操作),就可以将整个表当做“一个组”来进行信息统计:
结果为: