sql去除重复记录 且保留id最小的 没用

第一步:查询重复记录

 

  1.  
    SELECT * FROM TableName
  2.  
    WHERE RepeatFiled IN (
  3.  
    SELECT RepeatFiled
  4.  
    FROM TableName
  5.  
    GROUP BY RepeatFiled
  6.  
    HAVING COUNT(RepeatFiled) > 1
  7.  
    )


这一段逻辑很简单,就是把重复条数大于1的全部都搞出来就行了。

第二步:删除重复记录,只保留一条

 

  1.  
    SELECT * FROM TableName
  2.  
    WHERE RepeatFiled IN (
  3.  
    SELECT RepeatFiled
  4.  
    FROM TableName
  5.  
    GROUP BY RepeatFiled
  6.  
    HAVING COUNT(RepeatFiled) > 1
  7.  
    AND
  8.  
    ID NOT IN (
  9.  
    SELECT MIN(ID)
  10.  
    FROM TableName
  11.  
    GROUP RepeatFiled
  12.  
    HAVING COUNT(RepeatFiled) > 1
  13.  
    )
  14.  
    )

在上一步的基础上继续过滤,那就把最小值留下就行了,大功告成!

posted @ 2018-07-24 18:36  阿善9  阅读(526)  评论(0编辑  收藏  举报