gpt4 book ai didi

sql-server - SQL 服务器 2016 : How to remove records that are NOT duplicates but have duplicate values?

转载 作者:行者123 更新时间:2023-12-04 18:27:56 28 4
gpt4 key购买 nike

我是新来的,对 SQL 比较陌生。我有一个类似这样的表:

[Pk], [Case_No], [Status], [Open_Date], [Close_Date], [Case_Age], [Report_Date]

每周,所有案例,无论是打开的还是关闭的,都会被转储到表格中,并附上新的报告日期。我想要做的是能够删除已经关闭的重复出现的记录。我想保留案件被报告为已结案的第一个实例,但我不需要重复的案件(除非案件仍在审理中。)我希望这是因为……这是漫长的一天。我已经有了一个解决方案,但我需要清理历史记录才能正确报告。

如果我能弄清楚如何添加标志或其他东西...我已经尝试过 Dense_Rank(),但我不想对空的结束日期进行排名...

我已经在谷歌上搜索了好几天的想法,现在我正在向专家寻求建议。任何帮助是极大的赞赏!提前致谢!

最佳答案

使用 common table expression (cte)row_number() :

with cte as (
select *
, rn = row_number() over (
partition by Case_No, [Status]
order by Report_Date asc
)
from t
where [Status] = 'Closed'
)
select *
from cte
where rn > 1

要删除它们,只需将 select * 更改为 delete

关于sql-server - SQL 服务器 2016 : How to remove records that are NOT duplicates but have duplicate values?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44011862/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com