我有一个包含数百万行的表,要求日期跨度与某个“合同号”和“服务代码”不重叠。通常有2-4行,日期重叠,必须合并为一个记录。不应重叠不重叠的记录,并应保持差距。
ContractNumber ServiceCode StartDate EndDate
1111111 AFL 2010-01-01 2010-12-31
1111111 AFL 2011-01-01 2011-12-31
1111111 AFL 2011-04-01 2012-03-31
1111111 AFL 2011-04-01 2012-06-30
1111111 AFL 2013-01-01 2013-12-31
必须将它们组合成:
ContractNumber ServiceCode StartDate EndDate
1111111 AFL 2010-01-01 2010-12-31 (remains the same)
1111111 AFL 2011-01-01 2012-06-30 (merged)
1111111 AFL 2013-01-01 2013-12-31 (gap maintained)
另外,我已经看过这个问题:Eliminate and reduce overlapping date ranges。它在一个数据子集下工作,但是一旦我在我拥有的所有数据上释放它,它就会非常缓慢。我需要在几分钟内运行数百万行的东西。有什么想法吗?