一条Sql语句分组排序而且限制显示的数据条数

若是我想获得这样一个结果集:分组排序,而且每组限定记录集的数量,用一条SQL语句能办到吗?spa

 

好比说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写?.net

 

表[TScore]的结构code

code      学号 charblog

subject  科目 int排序

score     成绩 intget

 

能够这样写:引用

 

    SELECT [code]
        ,[subject]
        ,[score]
    FROM (
        SELECT *
        ,RANK() OVER(PARTITION BY subject ORDER BY score DESC) AS Row 
        FROM TScore
    ) AS a
    WHERE Row <= 3 ;co

 

引用自:http://blog.csdn.net/leftfist/article/details/6203254tar

相关文章
相关标签/搜索