小编Exc*_*dez的帖子

在一组重叠的版本编号区间中,在每个时间点找到最新版本

我正在使用一组日期间隔,其中每个间隔都有一个版本号,新的间隔经常与旧的间隔重叠,甚至是它们的子集.根据这些数据,我需要计算一组新的时间间隔,以显示每个时间点的最新版本号.是否有针对此问题的基于集合的解决方案?

这是一个例子:

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)

sql sql-server mathematical-optimization intervals

5
推荐指数
1
解决办法
508
查看次数