資料集分組並且組內部排序

2021-04-18 16:38:26 字數 1095 閱讀 7753

假設有表如下(僅作示例):

create table dbo.score

(scoreid              int                   identity(1,1)

, student             nvarchar(max)

, subjectid          nvarchar(max)    

, scorenumber    int   

)insert into score values('a', '數學', 96)

insert into score values('a', '語文', 90)

insert into score values('a', '程式設計', 77)

insert into score values('b', '數學', 76)

insert into score values('b', '語文', 66)

insert into score values('b', '程式設計', 88)

insert into score values('c', '數學', 60)

insert into score values('c', '語文', 80)

insert into score values('c', '程式設計', 66)

要求對每個學科中分數進行排序,如下圖:

可用sql server 2005中新的function:

select student

, subjectid

, scorenumber

, row_number() over (partition by subjectid order by scorenumber desc) as [rank]

from score

加上where 語句可以篩選出每學科前幾名學生。

linq分組再實現組內排序

哎呀 轉前端了 才一年沒寫後端 linq查詢都忘記了 原來炒雞簡單 記錄下 1.分組查詢 簡單分組查詢 var query from p in query orderby p.index descending 可分組前排序 group p by new into p select p 2.組內排序 ...

ZR954 分組(排序 dp)

共有 n nn 人報名了招聘,第 i ii 個人的工作經驗為 w iw i wi 薪水為 s is i si 要招聘 2 k 2 times k 2 k 個人,並將這些人分為 k kk 組,每組兩個人。乙個人為組長,而另乙個人為組員。對於每個組,要求組長的工作經驗不小於組員的工作經驗。每個應聘者會有...

SQL實現group by 分組後組內排序

在乙個月黑風高的夜晚,自己無聊學習的sql的時候,練習,突發奇想的想實現乙個功能查詢,一張成績表有如下字段,班級id,英語成績,資料成績,語文成績如下圖 實現 查詢出 每個班級英語成績最高的前兩名的記錄。看起來不難的業務,做起來才知道還挺麻煩的,說白了其實就是實現分組後的組內排序,一般不思考的話我們...