mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)相关的知识,希望对你有一定的参考价值。
mysql版
查询各科成绩前三名的记录:(不考虑成绩并列情况)
学生表、课程表、 成绩表、教师表50个常用sql语句
--Student(S#,Sname,Sage,Ssex) --学生表
--Course(C#,Cname,T#) --课程表
--SC(S#,C#,score) --成绩表
--Teacher(T#,Tname) --教师表
SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE EXISTS
(SELECT COUNT(1)
FROM SC
WHERE t1.cno= cno AND t1.score<score
HAVING COUNT(1)<3)
ORDER BY t1.cno,score DESC
另外还有一种类似的写法:
SELECT t1.sno,t1.cno,Score
FROM SC t1
WHERE
(SELECT COUNT(cno)
FROM SC
WHERE t1.cno= cno AND t1.score<score)<3
ORDER BY t1.cno,score DESC 参考技术A select * from
(select Student.S#,Sname,Sage,Ssex,SC.C#,score,Cname
from SC inner join Student on SC.S#=Student.S#
inner join Course on Course.C#=SC.C#) as t
where exists(
select count(1) from t as d
where C#=d.C# and score < d.score
having count(1)<3
)
以上是关于mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)的主要内容,如果未能解决你的问题,请参考以下文章