SQLServer之8:sql查询每个学⽣得分最⾼的两门课
这是⼀道⾯试题,今天有空把它记下来,以后遇到此类问题作个参考!刚⼀看到这个题⽬,估计好多⼈都会想到关键字top,其实这⾥⽤到的关键字是partition,
好了,先看看表结构,及数据吧!
接下来看⼀看partition的功能,执⾏语句
select c.*,ROW_NUMBER() over (partition by c.ID order by c.Sorce desc) rank urcer c
结果如下:
到这⾥⼀⽬了然知道最终结果了!
View Code
select s.*,c.*
from dbo.student s
left join
(
select c.*,ROW_NUMBER() over (partition by c.ID order by c.Sorce desc) rank urcer c ) c
on s.ID=c.ID
where c.rank<=2多表查询sql语句面试题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。