SQL中GROUP BY的理解

版权声明:本文为作者创作,转载请注明出处:http://blog.csdn.net/claroja,如有商业用途请联系QQ:63183535。 https://blog.csdn.net/claroja/article/details/53737574

  在SQL中GROUP BY指的是把总数据表切割成若干子数据表,然后再对各个子数据表进行处理,比如我们需要计算下表中每个年级的人数。

grade name score
一年级 小王 51
一年级 小魏 61
一年级 小张 71
一年级 小李 51
一年级 小王 51
二年级 中王 51
二年级 中魏 61
二年级 中张 71
二年级 中李 51
二年级 中王 51
三年级 大王 51
三年级 大魏 61
三年级 大张 71
三年级 大李 51
三年级 大王 51

  输入SQL语句

SELECT grade total,COUNT(name) AS total FROM tbl GROUP BY grade; 

  输入SQL语句之后的查询结果入下表:

grade total
一年级 5
三年级 5
二年级 5

我们来详细的来看一下具体的执行过程,如下图

SQL中GROUP BY的理解
  首先,SQL会根据GROUP BY对总数据表进行切分(按“grade”),分成3个子表格。
  然后对每个子表格的“name”字段进行COUNT AS(total)计算,再合并生成最后的数据。
  同样的道理我们还可以计算每个年级的平均分。
  输入SQL语句

SELECT grade total,avg(score) as avg FROM tbl GROUP BY grade; 

结果

grade avg
一年级 57
三年级 57
二年级 57

具体过程,如图
SQL中GROUP BY的理解

展开阅读全文

没有更多推荐了,返回首页