小编B0A*_*rew的帖子

确定连续的日期间隔

我有以下表结构:

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)

sql t-sql sql-server sql-server-2008

4
推荐指数
1
解决办法
343
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1