sql server 根據字段去重

使用 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 fromselect name ,row_number() over ( partition by name order by score) rn from UserGradeas 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
相關文章
相關標籤/搜索