add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
with t as (
select v.*
from (values (convert(date, '2014-08-24'), convert(date, '2014-12-19')),
('2014-08-31', '2014-09-02'),
('2014-09-02', '2014-09-18'),
('2014-09-18', '2014-11-03'),
('2014-11-18', '2014-12-09')
) v(start_dte, end_dte)
)
select min(start_dte) as start_dte, max(end_dte) as end_dte
from (select t.*,
sum(case when prev_end_dte = start_dte then 0 else 1 end) over (order by start_dte) as grp
from (select t.*,
lag(end_dte) over (order by start_dte) as prev_end_dte
from t
) t
) t
group by grp;


start_dte end_dte
24/08/2014 00:00:00 19/12/2014 00:00:00
31/08/2014 00:00:00 03/11/2014 00:00:00
18/11/2014 00:00:00 09/12/2014 00:00:00