Java教程

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

 

 

 

 

 

 

这篇关于每天一个sql小知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!