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.  
    )

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

猜你喜欢

转载自www.cnblogs.com/shan1393/p/9361861.html