当前位置: 首页 > 知识库问答 >
问题:

删除重复多次但保留第一次出现的ID[重复]

敖毅
2023-03-14

我有一个表,需要删除整个行,其中ID发生第二次和以后的时间,但留下第一次出现suCustoriID顺便说一下。M表的ID是主键,CustometID是重复的。因此,我需要删除所有重复的自定义ID行。

Delete From Table1 where ID IN (select ID From Table1 where count(distinct CutomerID) >=2 group by CustomerID)

上面的代码将删除所有id,包括每个id的第一次出现,但我需要保留它们的第一次出现。请告知。

共有2个答案

满玉泽
2023-03-14
delete a from(
Select dense_rank() OVER(PARTITION BY id ORDER BY id) AS Rn,*
from Table1)a
where a.Rn>1
仲孙超
2023-03-14

这段代码应该能满足您的需要。

如果您能为Table1提供完整的表模式,可能会有更好的方法来实现这一点

如果您获得行号,然后忽略第一个:

;WITH cte 
AS 
(
  SELECT ID, 
     ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) AS Rn
  FROM [Table1]
)
DELETE cte WHERE Rn > 1
 类似资料:
  • 我有一个简单的数据库表 我想删除所有按fv和sv分组的重复行。这已经是一个相当流行的问题,有很好的答案。但我需要改变这种情况。当rel\u id为NULL时,我想保留该行。在任何其他情况下,任何事情都会发生。 所以通过使用以下值 任何一个 或 将是有效的结果。其中为 不会。因为第一个条目有作为,它在之上担任主席。 我目前有这个(这是关于基本重复问题的答案)作为删除重复项的查询,但我不确定如何继续修

  • 问题内容: 我犯了一个错误,并且有多余的重复项。 我有一个包含4个关键字段的表。,,,。 是自动递增和主键。 的组合,而应该是唯一的,我有我之前创建唯一索引来删除重复的行。有些行有一个重复项,有些行有很多重复项。 向我显示了我需要处理的重复值。但是现在我不知道如何保留一个并删除每个重复集的其余部分。 问题答案: 备份数据,然后… MySQL在DELETE语句中支持JOIN。如果要保留第一个重复项:

  • 我有这样的promise,1是最新的,3是最老的: 提交1 提交2 提交3 如何删除提交 1 和 2,但保留更改并将其提交到?

  • 我试图编写一个代码,它接收并删除该中的重复字符。 例如。如果,则应返回。到目前为止,我的代码只返回与给定的相同的tekst…

  • 假设我们有熊猫表: 我们如何删除只有“狗”一个条目的行?例如,这将是带有pom,雪橇犬的行。 谢谢!

  • 有人能帮我为这个双链接列表写一个RemoveFirstOccurse方法吗? 它删除目标数据第一次出现的节点。搜索从头部开始。如果目标数据不在列表中,那么列表保持不变。最后一个节点的下一个字段值为null。没有尾部引用。 到目前为止,我写了这样的东西,但是当删除列表中没有的字符串时,我得到了一个空指针异常。我已经标记了NPE发生的地方。如果你能帮助找出原因,或者如果你有一个完全不同的方法来工作,那