查询存在两门(包含两门)以上课程不及格的学生姓名

学生Student(sno,sname,sage,ssex)课程Course(cno,cname,teacher)选修SC(sno,cno,score)以上是三张,表用S... 学生Student(sno,sname,sage,ssex)
课程Course(cno,cname,teacher)
选修SC(sno,cno,score)
以上是三张,表用Sql
查询存在两门(包含两门)以上课程不及格的学生姓名
展开
 我来答
学无只静
2018-06-13 · 超过10用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:22.7万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
love森之南
推荐于2018-06-04
知道答主
回答量:41
采纳率:0%
帮助的人:8.8万
展开全部
刚正好在做这题,我这边是ok的。你自己可以去试试。(因为是测试,所以起名有些随意)
-- 查询所有有两门/或以上成绩小于60的学生姓名和平均成绩
SELECT s.sname,sss.mm from
(SELECT sc.sno,avg(sc.score) mm FROM sc WHERE sc.sno IN
(SELECT sc.sno FROM sc WHERE sc.score <60 GROUP BY sc.sno HAVING COUNT(sno)>1 )
GROUP BY sc.sno) sss
LEFT JOIN s on sss.sno = s.sno
解释:(SELECT sc.sno FROM sc WHERE sc.score <60 GROUP BY sc.sno HAVING COUNT(sno)>1 ) ——————是用来锁定包含两门不及格的学生的学号,并作为下面查询的约束条件
(SELECT sc.sno,avg(sc.score) mm FROM sc WHERE sc.sno IN ——————结合上面筛选出来的学号,计算出平均成绩,因为使用了avg函数所以需要排序GROUP BY sc.sno) sss,将中间表取名sss
LEFT JOIN s on sss.sno = s.sno——————用外链接关联学生信息表
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-11-25
展开全部
select * from student where sno in(
select sno from sc where score<60 group by sno having count(cno)>=2)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-13
展开全部
select student.sname from student,sc
where score <60
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式