zoukankan      html  css  js  c++  java
  • SQL Server之8:sql查询每个学生得分最高的两门课

    这是一道面试题,今天有空把它记下来,以后遇到此类问题作个参考!刚一看到这个题目,估计好多人都会想到关键字top,其实这里用到的关键字是partition

    好了,先看看表结构,及数据吧!

    接下来看一看partition的功能,执行语句

    select c.*,ROW_NUMBER() over (partition by c.ID order by c.Sorce desc) rank from dbo.courcer 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 from dbo.courcer c
    ) c
    on s.ID=c.ID
    where c.rank<=2
  • 相关阅读:
    数组
    2017.3.20for
    PHP基础2
    php基础1
    触发器
    SQL储存过程
    范式
    时间戳
    主键和外键
    15 大图轮播
  • 原文地址:https://www.cnblogs.com/alvinyue/p/2595350.html
Copyright © 2011-2022 走看看