group by是跟MySQL的聚合函数一起使用的,通过把一个列(column)分成组(group),来分别使用聚合函数。
常见聚合函数:
- AVG() 求平均数
- COUNT() 求列的总数
- MAX() 求最大值
- MIN() 求最小值
- SUM() 求和
聚合函数特点就是它们的结果都是一个单一的值,多个行一起应用一个这样的函数后,就变成一行了。加上Group by之后,就打破了这个规则了,数据都先被group起来,然后再分别应用聚合函数。举例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
我通过上面的mysql代码生成一个表叫toy:
我们可以通过先把toy表按name分组(group),然后再数不同名字的toy有多少个,SQL代码是:
- 1
- 1
可以看到,我们group by name,name列就是没有重复的,流程是,把所有列按name分组,然后应用count这个函数。coun() 的作用是数有多少列。
我来看来按version分组看看:
- 1
- 1
是不是跟预期的结果一样呢?
总结:
- group by 跟聚合函数一起使用
- 作用是先把table按列分组(比如说group by name,是按name分组),然后各个group分别使用聚合函数,然后得出结果。
参考自: http://blog.youkuaiyun.com/u010093140/article/details/50479752