首页 > 数据库技术 > 详细

sql查询删除重复数据

时间:2016-05-09 15:38:30      阅读:180      评论:0      收藏:0      [点我收藏+]

数据库UserInfo

技术分享

技术分享

删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户

01、根据多个字段查询重复数据

with data1 as(

select MobilePhone,Name from UserInfo
group by MobilePhone,Name
having count(*)>1

),

02、对重复数据分配编号

data2 as (

select u.*,row_number() over(partition by u.MobilePhone,u.Name order by Id ) rowNum from UserInfo u
inner join data1 d on u.Name=d.Name and u.MobilePhone=d.MobilePhone

),

03、查询需要删除数据的主键(每个小组里的编号为一的保留 其它删除)

data3 as(

select Id from data2 where rowNum>1

)

04、根据主键删除数据

delete from UserInfo
where Id in (select Id from data3)

 

删除后

技术分享

附 sqlserver中分区函数partition by的用法 http://www.cnblogs.com/zhangchengye/p/5473860.html

 

sql查询删除重复数据

原文:http://www.cnblogs.com/zhangchengye/p/5473975.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!