sql server 根據字段去重


使用 row_number() over (partition by 要去重的字段 order by 排序字段)

 

 

數據庫表結構 學生成績表 UserGrade

Id        int              Checked     主鍵Id
Name   varchar(50) Checked     學生名
Course varchar(50) Checked     課程名
Score   int             Checked      分數

 

有如下數據,

 

1001 李四 英語 100 

1000 張三 語文 80

 1004 李四 數學 60

 1005 李四 語文 80 

1008 張三 英語 60

 1007 王五 數學 30

 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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM