我正在使用一组日期间隔,其中每个间隔都有一个版本号,新的间隔经常与旧的间隔重叠,甚至是它们的子集.根据这些数据,我需要计算一组新的时间间隔,以显示每个时间点的最新版本号.是否有针对此问题的基于集合的解决方案?
这是一个例子:
Interval 1: 11111111111111111111111
Interval 2: 2222222222
Interval 3: 33333333333333
Interval 4: 444444444
Interval 5: 555555555
Result : 11333333333333331155555555544
Run Code Online (Sandbox Code Playgroud)
以下是我正在使用的数据示例:
groupId startDate endDate version
-------- --------- ---------- ------
1 1/1/2010 1/1/2011 1
1 10/1/2010 7/5/2011 2
1 7/5/2011 8/13/2012 3
1 8/13/2012 12/31/2012 6
1 10/1/2012 11/1/2012 8
Run Code Online (Sandbox Code Playgroud)
......和期望的输出:
groupId startDate endDate version
-------- --------- ---------- ------
1 1/1/2010 10/1/2010 1
1 10/1/2010 7/5/2011 2
1 7/5/2011 8/13/2012 3
1 8/13/2011 10/1/2012 6
1 10/1/2012 11/1/2012 8 << note …Run Code Online (Sandbox Code Playgroud)