首页 > 数据库技术 > 详细

SqlServer_删除重复行只保留一条记录

时间:2015-06-30 21:42:00      阅读:332      评论:0      收藏:0      [点我收藏+]
 
前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条
 
思路:
1、找出存在重复数据的记录,并取重复数据中最大的Id值
2、删除记录中不包含最大Id值的记录
 
实现:
DELETE FROM [Log_IIS].[dbo].[IISLog_table]
WHERE id not in 
(select MAX(Id) from [IISLog_table] group by [RequestTime]
      ,[LogFilename]
      ,[LogRow]
      ,[date]
      ,[time]
      ,[cIp]
      ,[csUsername]
      ,[sSitename]
      ,[sComputername]
      ,[sIp]
      ,[sPort]
      ,[csMethod]
      ,[csUriStem]
      ,[csUriQuery]
      ,[scStatus]
      ,[scSubstatus]
      ,[scWin32Status]
      ,[scBytes]
      ,[csBytes]
      ,[timeTaken]
      ,[csVersion]
      ,[csHost]
      ,[csUserAgent]
      ,[csCookie]
      ,[csReferer]
      ,[sEvent]
      ,[sProcessType]
      ,[sUserTime]
      ,[sKernelTime]
      ,[sPageFaults]
      ,[sTotalProcs]
      ,[sActiveProcs]
      ,[sStoppedProcs] having count(*) > 1)   





SqlServer_删除重复行只保留一条记录

原文:http://www.cnblogs.com/gossip/p/4611537.html

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