SQL求选修课程在两门以上并且都及格的学生号及总平均分

 我来答
longrenyingdc8ecb1
2016-10-28 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2380万
展开全部
我只会oracle的写法,其他数据库可能会有所区别,请注意。而且就算这种写法,因为无法实验可能也有些出入,应该需要调试
select 学生号,avg(分数) from table where 分数>=60 group by 学生号 having count(*)>1

分数>60保证及格,这里首先查询的是及格的学生,及格的学生如果count(*)>1,那么他的选课一定是两门或者两门以上(我假定的选课表是一个学生一个课程一行)。不过这里有一个问题,假设一个学生选了三门课程,两门及格一门不及格,那么是不是需要统计,按照你的需求
“两门以上并且都及格”,现在这个语句好像与你的要求不是那么符合。
所以还有一个版本
select table.学生号,avg(table.分数) 平均分 from table,(select 学生号,count(*) 选课数 from table group by 学生号 having 选课数>1)a where table.分数>60 group by 学生号 having table.学生号=a.学生号 and a.选课数=count(*)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式