数据库学习笔记系列(5)——分组查询

来源:互联网 发布:origin for mac 破解 编辑:程序博客网 时间:2024/06/05 18:03

数据库中的分组查询可以通过group by命令来实现。
group by子句可以将查询结果表的各行按一列或多列取值相等的原则(一组的数据中它们被分组的字段一定是相同的)。
对查询结果分组的目的是为了细化集函数的作用对象。如果未对查询结果分组,集函数将作用于整个参训结果,即整个查询结果只有一个函数值。否则,集函数将作用于每一个组,即每一组都有一个函数值。

原始表的情况:
这里写图片描述

1. 查询每个课程人的均分
这里写图片描述

我们可以看出group by主要在精细集函数的作用对象。

如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足满足指定条件的组,则可以使用having短语指定筛选条件。
2. 选课人数大于2人的每个课程的均分
这里写图片描述

注意,having之后的筛选条件最好是和分组相关的字段。如果不是相关的字段,就很有可能出错。
例如上例中分组的依据只算是course, 而count的也是course的人数,但是假如我们换成性别ssex,那么就会出现下面的错误:
这里写图片描述

我们发现:女生选择的课程不是只有C语言,但是查询的结果就只有一条数据。所以我们在使用分组查询的时候要注意这点。

0 0
原创粉丝点击