答案,待完善

1、查询课程编号为" 01 “的课程比” 02 "课程成绩高的 “学生的信息” 及 “课程成绩分数”

SELECT s.*, t1.score 
FROM Student s,
	(SELECT * FROM SC WHERE CId = '01') t1,
	(SELECT * FROM SC WHERE CId = '02') t2
WHERE t1.SId = t2.SId 
AND t1.score > t2.score 
AND s.SId = t1.SId

2、查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

SELECT s.SId, s.Sname, AVG(sc.score)
FROM Student s, SC sc
WHERE s.SId = sc.SId
GROUP BY sc.SId HAVING AVG(sc.score) >= 60

3、查询在 SC 表存在成绩的学生信息

SELECT * FROM Student
WHERE SId IN
(
	SELECT DISTINCT SId 
	FROM SC
	WHERE score <> '' 
	AND score IS NOT NULL
)

4、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )

SELECT s.SId, s.Sname, COUNT(SC.CId), SUM(SC.score)
FROM Student s
LEFT JOIN SC ON SC.SId = s.SId
GROUP BY s.SId

9、查询和” 01 "号的同学学习的课程 完全相同的其他同学的信息

SELECT DISTINCT S.* 
FROM SC, Student S
WHERE SC.SId IN(
	SELECT SId 
	FROM SC 
	WHERE SId != '01'
	GROUP BY SId 
	HAVING COUNT(CId) = (SELECT COUNT(CId) FROM SC WHERE SId = '01')
)
AND CId IN (SELECT CId FROM SC WHERE SId = '01')
AND S.SId = SC.SId
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值