酷酷哥来教下我
4、查询课程成绩小于75分的学生ID,姓名,班级,课程以及分数
方式一:
方式二:
6、计算重点班中每一科的平均成绩,显示数据包括:重点班级ID,班级名称,课程,平均分数,按照降序排列
我有点搞不明白这个分组group by 的作用,和到底什么时候用。
比如第4题,方式一不需要加分组也能够正常查出来,效果跟方式二加了分组差不多。而第6题的话分组才能查出来,不分组只能查出一条错误数据。求教这个分组该怎么用?感谢
正在回答
同学你好,这里同学可以这样理解:
1、首先group by 的作用就是对表进行分组查询。
例如同学编写的第四题的第一种方式没有使用group by,就是表示将三个表进行内连接后,进行筛选出符合成绩小于75分条件的学生ID,姓名,班级,课程以及分数的字段。
而同学编写的第二种方式使用了group by,就表示将三个表进行内连接,然后对学生id和课程进行分组,对分组后组内的进行筛选出分数>75的学生ID,姓名,班级,课程以及分数的字段。
2、什么时候用分组,一般情况下SELECT 后 既有表结构本身的字段,又有需要使用聚合函数(例如:COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段,就要用到group by分组,查询的限定条件里有需要用聚合函数计算的字段时也需要用分组。
例如:
第6题中,计算重点班中每一科的平均成绩,这里面的“重点班中每一科”就是查询的限定条件,“平均成绩”是聚合函数。所以就需要使用分组。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星