前提:相同的数据重复往数据库写入,导致存在仅主键Id不同的重复数据,现在需要去除重复数据,仅保留重复数据中Id最大的一条
 
思路:
1、找出存在重复数据的记录,并取重复数据中最大的Id值
2、删除记录中不包含最大Id值的记录
 
注意:该SQL会删除没有重复数据的记录
实现:
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)   

下面代码通过循环方式删除重复行,不会影响到没有重复行的记录

DECLARE @Count INT
select @Count=COUNT(UserID) from UserBankCardInfo group by UserID
having count(*) > 1
PRINT @Count WHILE(@Count>1)
BEGIN
DELETE FROM UserBankCardInfo
WHERE id in
(
select MAX(Id) id from UserBankCardInfo group by UserID
having count(*) > 1
)
SET @Count=@Count-1
END

SqlServer_删除重复行只保留一条记录的更多相关文章

  1. mysql 删除重复数据只保留一条记录

    删除重复数据保留name中id最小的记录 delete from order_info where id not in (select id from (select min(id) as id fr ...

  2. mysql删除重复数据只保留一条

    mysql删除重复数据只保留一条 新建一张测试表: CREATE TABLE `book` ( `id` char(32) NOT NULL DEFAULT '', `name` varchar(10 ...

  3. oracle删除重复数据只保留一条

    -- 如表role_user的数据 ROLEID USERID -- 删除相同记录只剩下一条记录 根据两个字段查询重复数据 (roleid,userid) ) 删除重复数据只保留一条 delete f ...

  4. SQL删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...

  5. Oralce中SQL删除重复数据只保留一条(转)

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 .查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...

  6. MySQL中删除重复数据只保留一条

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 SELECT ...

  7. SQL查找 删除重复数据只保留一条

    --用SQL语句,删除掉重复项只保留一条 --在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 --1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 ...

  8. sql语句(删除重复数据只保留一条)

    用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select ...

  9. mysql——查询重复数据,及删除重复数据只保留一条数据

    查询 text 表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from text 删除 text 表中,重复出现的数据只保留 ...

随机推荐

  1. Flex UI刷新后保持DataGrid中的ScrollBar的位置不变

    这是之前我发的一个贴子问题描述:http://q.cnblogs.com/q/53469/

  2. tr/td

    在HTML中,tr代表行,td代表列. 说明: 1.tr与td必须一起使用,并且输入的内容必须在td里面: 2.td必须在tr里面,表示在一行中的列: 3.在一个tr里面,有x个td,就表示在这一行里 ...

  3. Execute a terminal command from a Cocoa app

    http://stackoverflow.com/questions/412562/execute-a-terminal-command-from-a-cocoa-app in the spirit ...

  4. mybatis generator 生成带中文注释的model类

    将org.mybatis.generator.interal.DefaultCommentGenerator类的addFieldComment方法重写,代码如下: public void addFie ...

  5. 2.docker容器

    docker run 镜像,生成镜像容器,并运行 有以下参数 --name="new name",为容器指定一个新名字 -d:后台运行容器,返回容器id,即启动守护式容器 -i:以 ...

  6. selenium 3.0鼠标事件 (java代码)

    注意:ActionChains下相关方法在当前的firefox不工作,建议使用谷歌浏览器. public static void main(String[] args) throws Interrup ...

  7. python之多并发socket(zz)

    本文转载自:http://www.cnblogs.com/bainianminguo/p/7337210.html 先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserv ...

  8. rabbitmq安装-Erlang

    安装Erlang Install Erlang from the Erlang Solutions repository or Follow the instructions under " ...

  9. hdu 1932(spfa)

    XYZZY Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3694   Accepted: 1059 Description ...

  10. 【hdoj_2124】RepairTheWall

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2124 思路:贪心法.由于要求所需的块儿(block)的最小数目,先把所有的块儿加起来,看看大小是否> ...