欢迎投稿

今日深度:

sql server 根据字段去重,

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

 

 

www.htsjk.Com true http://www.htsjk.com/Sql_Server/28017.html NewsArticle sql server 根据字段去重, 使用 row_number() over (partition by 要去重的字段 order by 排序字段) 数据库表结构 学生成绩表 UserGrade Id int Checked 主键Id Name varchar(50)Checked 学生名 Coursevarchar(50)Checke...
相关文章
    暂无相关文章
评论暂时关闭