MYSQL之Group By
概述
Group By
即根据其指定的规则对查询数据进行分组,这个分组的意义是对分组内数据进行数据处理,包括SUM、COUNT等等。
这里需要注意的是:Select ... Group By xxx
的查询结果中只能包含两种数据:由Group BY
指定的分组依据字段
,以及数据处理的结果。如下:
Select userId, SUM(score) as sumScore
From grade
Group By userId
数据处理
Group By
通常是和聚合函数一起使用的,也就是上面所说的数据处理。常见的聚合函数如下:
序号 | 函数 | 描述 |
---|---|---|
1 | sum(列名) | 求和 |
2 | max(列名) | 最大值 |
3 | min(列名) | 最小值 |
4 | avg(列名) | 平均值 |
5 | count(列名) | 统计,注意与count(*)的区别 |
Example
表grade
id | user_id | score | course | class |
---|---|---|---|---|
1 | 1 | 56 | 数学 | 1 |
2 | 3 | 78 | 数学 | 1 |
3 | 1 | 97 | 语文 | 1 |
4 | 4 | 88 | 数学 | 2 |
5 | 3 | 67 | 语文 | 1 |
6 | 3 | 99 | 英语 | 1 |
7 | 1 | 44 | 英语 | 1 |
8 | 4 | 97 | 语文 | 2 |
9 | 4 | 58 | 英语 | 2 |
# SQL
SELECT class, SUM(score) from grade GROUP BY class
# 执行结果
class sum(score)
1 441
2 243
# 多分组依据字段
SELECT class, userId, SUM(score) from grade GROUP BY class, userId
# 执行结果
class user_id SUM(score)
1 1 197
1 3 244
2 4 243
总结
Group By
通常是和聚合函数SUM()
、COUNT()
等一起使用的,所返回的结果除了聚合查询结果外,只能加上分组依据字段。同时,分组依据字段可以是多个,由这被指定的多个字段确定其分组。
还没有评论,来说两句吧...