Sql server 从计数查询中删除查询

Sql server 从计数查询中删除查询,sql-server,Sql Server,我正在尝试清理一个具有重复的claim\u ids的SQL表。如何通过此查询按CollectLogDate删除重复的索赔ID 选择ID、索赔ID、InsertDate、CollectLogDate、Count(CollectLogDate)作为CollectLogDate 来自[dbo]。[temp] 按ID分组,索赔ID,插入日期,收集日期 下面的查询将在传递的日期范围内找到重复的索赔id,并将其从临时表中删除 delete from [dbo].[temp] where claim_id i

我正在尝试清理一个具有重复的
claim\u id
s的SQL表。如何通过此查询按CollectLogDate删除重复的索赔ID

选择ID、索赔ID、InsertDate、CollectLogDate、Count(CollectLogDate)作为CollectLogDate
来自[dbo]。[temp]
按ID分组,索赔ID,插入日期,收集日期

下面的查询将在传递的日期范围内找到重复的索赔id,并将其从临时表中删除

delete
from [dbo].[temp]
where claim_id in (
    select claim_id
    from [dbo].[temp]
    where CollectLogDate between 'start_dt' and 'end_dt'
    group by claim_id
    having count(1) > 1
)

如果您的要求与此不同,请在问题中添加一些示例输入和输出数据。

这是否回答了您的问题?您可以添加一些示例数据吗?如果使用SELECT DISTINCT会发生什么情况?因此,如果有多行的claim_id=10(例如),您建议删除所有这些行,而不是只保留一行?为什么
'start\u dt'
'end\u dt'
是您的解决方案的一部分?是的,上述解决方案会删除所有重复项?是否保留一个并删除其余的?如果是,那么你可以试试这个。从(按claim分区,按collectlogdate desc排序,按collectlogdate desc排序)上选择行编号()作为行编号,*从[dbo].[temp])T中删除,其中T.rownNumber>1