每天一个sql小知识
作者:互联网
实习第二天,组里的姐姐让做的题
表结构:
--学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex)
--课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId)
--成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score)
--教师表tblTeacher(教师编号TeaId、姓名TeaName)
问:
编写SQL语句,查询每门功成绩最好的前两名
答:
select
row_number()
over(
partition by
sc.Courseid
order by
sc.Score desc) rank
st.stuname
,co.CourseName
from
tblScore sc
left join
tblStudent st
on sc.Stuid=st.Stuid
left join
tblCourse co
on oc.CourseId=sc.CourseId
where rank=1 or rank=2;
涉及知识点:窗口函数
拓展知识点:row_number ,rank ,dense_rank 的区别
标签:每天,--,知识,rank,st,CourseId,sql,编号,sc 来源: https://blog.csdn.net/hapniss/article/details/120768417