我有以下表结构:
id int -- more like a group id, not unique in the table
AddedOn datetime -- when the record was added
Run Code Online (Sandbox Code Playgroud)
具体而言id
,每天最多只有一条记录.我必须编写一个查询,返回每个的连续(在日级别)日期间隔id
.预期的结果结构是:
id int
StartDate datetime
EndDate datetime
Run Code Online (Sandbox Code Playgroud)
请注意,时间部分AddedOn
可用,但在此处并不重要.
为了更清楚,这里有一些输入数据:
with data as
(
select * from
(
values
(0, getdate()), --dummy record used to infer column types
(1, '20150101'),
(1, '20150102'),
(1, '20150104'),
(1, '20150105'),
(1, '20150106'),
(2, '20150101'),
(2, '20150102'),
(2, '20150103'),
(2, '20150104'),
(2, '20150106'),
(2, '20150107'),
(3, …
Run Code Online (Sandbox Code Playgroud)