我们有一个Microsoft SQL Server表[database].[dbo].[UserInAppPurchase]
,其中包含以下列:
[Id]
,[UserEmail]
,[UserId]
,[PurchaseDate]
,[ProductId]
,[TransactionId]
,[OriginalTransactionId]
,[ValidationTime]
,[ValidationReceipt]
,[ValidFrom]
,[ValidTo]
,[Platfrom]
因此,UserID
可能具有同一笔购买的多个记录,但均会出错。重复项将具有相同的ValidTo
日期。
那么我将如何删除所有重复项?最后,每个UserId
都将只有一个带有该特定ValidTo
日期的条目。
感谢您的帮助
安德烈亚斯
答案 0 :(得分:1)
row_number()
具有可更新的CTE:
with todelete as (
select uiap.*, row_number() over (partition by userid, validto order by id) as seqnum
from UserInAppPurchase uiap
)
delete from todelete
where seqnum > 1;