sqlserver根据字段去重
使⽤ 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 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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。