见sql问题总结四

-- 查询各个课程及相应的选修人数; SELECT aa.cid,aa.cname ,bb.num FROM ( SELECT cid ,cname FROM course) aa INNER JOIN (SELECT COUNT(student_id)as num,corse_id FROM score GROUP BY corse_id) bb on aa.cid=bb.corse_id -- 查询不同课程但成绩相同的学生的学号、课程号、学生成绩; -- 查询每门课程成绩最好的前两名; SELECT * FROM( select SC.corse_id,SC.number SCORE,ROW_NUMBER() OVER(PARTITION BY SC.corse_id ORDER BY SC.number DESC) RN FROM score SC) A WHERE A.RN <=2 -- 检索至少选修两门课程的学生学号; SELECT student_id,COUNT(*)as num FROM score GROUP BY student_id HAVING num>=2 -- 查询全部学生都选修的课程的课程号和课程名; SELECT cname,cid FROM course WHERE cid in ( select corse_id as num FROM score GROUP BY corse_id HAVING num =(SELECT COUNT(*) FROM student)) -- 查询没学过“王”老师讲授的任一门课程的学生姓名 SELECT * FROM student WHERE sid not in ( SELECT student_id FROM score WHERE corse_id in( SELECT cid FROM course WHERE tearch_id in ( SELECT tid FROM teacher WHERE tname = '王老师'))) -- 查询两门以上不及格课程的同学的学号及其平均成绩; SELECT AVG(number),student_id FROM score GROUP BY student_id HAVING number<60 -- 、检索“004”课程分数小于60,按分数降序排列的同学学号; SELECT student_id FROM score WHERE corse_id=4 and number<60 ORDER BY number -- 删除“002”同学的“001”课程的成绩; DELETE FROM score WHERE student_id=2 and corse_id=1

 


__EOF__

本文作者流川枫
本文链接https://www.cnblogs.com/xxks/p/17305481.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   史可轩  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
3 4
点击右上角即可分享
微信分享提示