酷酷哥来教下我

酷酷哥来教下我

4、查询课程成绩小于75分的学生ID,姓名,班级,课程以及分数

方式一:
http://img1.sycdn.imooc.com//climg/5df38b0609d4392b04760328.jpg

方式二:

http://img1.sycdn.imooc.com//climg/5df38b9509ec4f5304780342.jpg

6、计算重点班中每一科的平均成绩,显示数据包括:重点班级ID,班级名称,课程,平均分数,按照降序排列
http://img1.sycdn.imooc.com//climg/5df38d010959e64805770330.jpg

我有点搞不明白这个分组group by 的作用,和到底什么时候用。

比如第4题,方式一不需要加分组也能够正常查出来,效果跟方式二加了分组差不多。而第6题的话分组才能查出来,不分组只能查出一条错误数据。求教这个分组该怎么用?感谢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这里同学可以这样理解:

1、首先group by 的作用就是对表进行分组查询。

例如同学编写的第四题的第一种方式没有使用group by,就是表示将三个表进行内连接后,进行筛选出符合成绩小于75分条件的学生ID,姓名,班级,课程以及分数的字段。

而同学编写的第二种方式使用了group by,就表示将三个表进行内连接,然后对学生id和课程进行分组,对分组后组内的进行筛选出分数>75的学生ID,姓名,班级,课程以及分数的字段。

2、什么时候用分组,一般情况下SELECT 后 既有表结构本身的字段,又有需要使用聚合函数(例如:COUNT(),SUM(),MAX(),MIN(),AVG()等)的字段,就要用到group by分组,查询的限定条件里有需要用聚合函数计算的字段时也需要用分组。

例如:

第6题中,计算重点班中每一科的平均成绩,这里面的“重点班中每一科”就是查询的限定条件,“平均成绩”是聚合函数。所以就需要使用分组。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • qq_粽翎_0 提问者 #1
    感谢解答,进一步理解了,我去多练练
    2019-12-14 11:58:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师