KKB: SQL练习题(难) 下部分

13.查询没学过"张三"⽼师讲授的任⼀⻔课程的学⽣姓名

-- 查询出张三老师教的哪些课
SELECT course.CId
FROM course
LEFT JOIN teacher
ON course.TId = teacher.TId
WHERE teacher.Tname = '张三'

 

14.查询两⻔及其以上不及格课程的同学的学号,姓名及其平均成绩

第一步:查询出同学不及格的课程数目

下面就是连接表的过程,比较简单

 

15.检索" 01 "课程分数⼩于 60,按分数降序排列的学⽣信息

 

和上面题目类似的是,都是先查出来结果表,然后再和数据表做一个结合。这里参考答案,发现有一种简便的写法,不必重新像上面一题那样,将查询出来的结果表作为一张新表,而是先使用join将两张表结合,然后在后面加上查询的条件

 

 

 

16.按平均成绩从⾼到低显示所有学⽣的所有课程的成绩以及平均成绩

先查询出平均成绩,不做排序,因为给它排了序也没有用

然后结合两张表写出需要的结果,并排序

 

 

17.查询各科成绩最⾼分、最低分和平均分: 以如下形式显示:课程 ID,课程 name,最⾼分,最低 分,平均分,及格率,中等率,优良率,优秀率 及格为>=60,中等为:70-80,优良为:80-90,优秀 为:>=90 要求输出课程号和选修⼈数,查询结果按⼈数降序排列,若⼈数相同,按课程号升序排列

 

18.按各科平均成绩进⾏排序,并显示排名, Score 重复时保留名次空缺

 

待续

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值