数据库
首页 > 数据库> > 每天一个sql小知识

每天一个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