我需要一个 SQL 查询来删除下图中的重复项。假设表的名称是“Opens”。
如您所见,有很多记录在 Id、SendQueueId、SubscriberId 和 Email 中几乎相同。唯一不同的是它们的 DateTime。我只需要从每个 Id 中选择一个,这样我的 Id 将是唯一的,并且只保留最早的一个。
最佳答案
使用公用表表达式通过 ROW_NUMBER
函数识别重复项,并删除您指定为“第一个”的以外的所有匹配项。
;with cte as (
select *,
row_number() over (
partition by Id, SendQueueId, SubscriberId, Email, WP_CampaignId
order by DateTime
) as RN
from
Opens
)
delete
cte
where
RN > 1
关于sql - 删除/忽略表中的重复记录并仅保留最早的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360956/