我试图弄清楚如何删除表中的重复项,同时还保留在不同日期可能发生的任何更改。因此,如果以下面的示例为例,到目前为止,我所做的就是按我的唯一字段列表(不包括日期)进行分区,按日期升序排列,然后对它们进行相应排名。请注意,我有更多的字段和行,但是将其压缩下来以便于阅读。
通常,我只需要查询Rank = 1的行,因为这将返回我真正的唯一字段列表,并且在最近一次更改时,这就是我想要的。但是,我还试图捕获随着时间推移而发生的独特变化。鉴于纽约州已于2017-03-11恢复为“新泽西州”,因此,我需要找到一种方法来保持该记录。所以我的最终结果集将包括2016-11-08、2016-11-09和2017-03-11的日期。我现在被困住了,所以我希望提出建议。谢谢!
Ranking = RANK() OVER (PARTITION BY
[State]
,[DomicileCountryCode]
,[DomicileCountryname]
ORDER BY FullDate ASC)
答案 0 :(得分:0)
进行更多搜索后,我可以在其他论坛上找到答案。希望可以在此处发布链接。基本上,它将创建两个不同的ROW_NUMBER字段,您可以将其分组以创建唯一的子集。然后,在最上面的SELECT语句中,我使用MIN来获取这3个子集的第一个可用日期。下面的链接将提供一个清晰的示例。非常优雅,非常不错的解决方案。
T-SQL to Group time interval change by date range in sql server