我有一个包含ID、日期和值的表.我希望始终根据ID合并90天窗口内的记录.在下面的示例中,这些是用相同 colored颜色 标记的行.
最终结果应该如下所示:
行ID为1的条目将打开ID为133741的90天窗口.RowID 2和3在此窗口中,因此应与RowID 1聚合在一起.
RowID 4将与2和3一起位于90天窗口中,但由于它位于1的窗口之外,因此不应再与它们合计,而应视为新的90天窗口的开始.由于此窗口中没有其他条目,因此它仍为一行.
第5行的日期显然超出了其他条目的90天窗口,因此也是单独汇总的.就像第6行一样,因为这是一个不同的ID.
下面是一些示例代码:
create table #Table(RowId int, ID nvarchar(255) , Date date, Amount numeric(19,1));
insert into #Table values
(1,'133742', '2021-07-30', 1.00 ),
(2,'133742', '2021-08-05', 3.00 ),
(3,'133742', '2021-08-25', 10.00 ),
(4,'133742', '2021-11-01', 7.00 ),
(5,'133742', '2022-08-25', 11.00 ),
(6,'133769', '2021-11-13', 9.00 );
我try 了窗口函数和CTE,但我找不到一种方法来包含我的所有需求