我有一个表,需要删除 ID 第二次及后续出现的整行,但保留第一次出现的 suCustomerIDBy 。 M表有主键ID和重复的CustometID。因此,我需要删除具有重复 CustomerID 的所有行。
Delete From Table1 where ID IN (select ID From Table1 where count(distinct CutomerID) >=2 group by CustomerID)
上面的代码将删除所有 id,包括每个 ID 的第一次出现,但我需要保留它们的第一次出现。请指教。
最佳答案
此代码应该可以满足您的需要。
如果您可以提供 Table1 的完整表架构,可能会有更好的方法
如果您获取行号,然后忽略前几个:
;WITH cte
AS
(
SELECT ID,
ROW_NUMBER() OVER(PARTITION BY ID ORDER BY ID) AS Rn
FROM [Table1]
)
DELETE cte WHERE Rn > 1
关于sql - 删除重复多次的 ID,但保留第一次出现的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219851/