-
How do you obtain those intervals? I see 7 records on the left and only 6 values on the right.Alexei– Alexei2018年02月15日 09:39:08 +00:00Commented Feb 15, 2018 at 9:39
1 Answer 1
It's classic "islands" problem.
Here is "classic" solution:
declare @t table (dt date);
insert into @t(dt) values
('20180202'),
('20180203'),
('20180204'),
('20180205'),
('20180209'),
('20180212'),
('20180213');
with c as
(
select dt, dateadd(day, -1 * dense_rank() over(order by dt), dt) as grp
from @t
)
select min(dt) as start_range, max(dt) as end_range
from c
group by grp;
answered Feb 15, 2018 at 7:42
lang-sql