码迷,mamicode.com
首页 > 数据库 > 详细

sql查询删除重复数据

时间:2016-05-09 15:40:47      阅读:235      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!