Пожалуйста, помогите с запросом. Требуется придумать алгоритм, который из таблички:
select '2013-01-02' as DateN, '2013-01-10' as DateK
union all
select '2013-01-08', '2013-01-13'
union all
select '2013-01-12', '2013-01-18'
union all
select '2013-01-10', '2013-01-14'
union all
select '2013-01-08', '2013-01-15'
union all
select '2013-01-20', '2013-01-25'
сделает:
02.01.2013 18.01.2013
20.01.2013 25.01.2013
Дано: набор периодов. Объединить пересекающиеся периоды в максимально возможный(е). На самом деле мне нужно посчитать количество дней в таких периодах (но разность дат - это не сложно).
В приведенном примере все периоды так или иначе пересекаются между собой, а последний период (см. последний select) стоит отдельно, поэтому на выходе получается 2 периода: в первый входят все кроме последнего, и сам последний период второй строчкой.