使用 row_number() over (partition by 要去重的字段 order by 排序字段)數據庫
數據庫表結構 學生成績表 UserGradespa
Id int Checked 主鍵Id
Name varchar(50) Checked 學生名
Course varchar(50) Checked 課程名
Score int Checked 分數code
有以下數據,orm
1001 李四 英語 100 blog
1000 張三 語文 80排序
1004 李四 數學 60數學
1005 李四 語文 80 it
1008 張三 英語 60io
1007 王五 數學 30class
1006 王五 語文 50
1003 王五 英語 50
1002 張三 數學 90
要獲取學生名並去重
select name from ( select name ,row_number() over ( partition by name order by score) rn from UserGrade )as s
where rn=1
其實就是根據名稱進行分組取每組中的第一個
select name ,row_number() over ( partition by name order by score) rn from UserGrade
查詢結果爲
李四1
李四 2
李四 3
王五 1
王五 2
王五 3
張三 1
張三 2
張三 3