一條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

相關文章
相關標籤/搜索