SQL合并连续日期
您好,有谁能帮我处理SQL查询。SQL合并连续日期,sql,sql-server,database,date,Sql,Sql Server,Database,Date,您好,有谁能帮我处理SQL查询。 我想显示数据库中至少有两个连续日期的所有连续日期 下面是我所希望的输出示例 以下是日期列表: 2016-06-24 00:00:00.000 2016-06-24 00:00:00.000 2016-06-24 00:00:00.000 2016-06-25 00:00:00.000 2016-06-25 00:00:00.000 2016-06-26 00:00:00.000 2016-05-26 00:00:00.000 2016-05-25 00:00:0
我想显示数据库中至少有两个连续日期的所有连续日期
下面是我所希望的输出示例 以下是日期列表:
2016-06-24 00:00:00.000
2016-06-24 00:00:00.000
2016-06-24 00:00:00.000
2016-06-25 00:00:00.000
2016-06-25 00:00:00.000
2016-06-26 00:00:00.000
2016-05-26 00:00:00.000
2016-05-25 00:00:00.000
2016-04-04 00:00:00.000
2016-06-26 00:00:00.000
------输出------------
| Start Date | End Date | Count | consecutive Date |
| 2016-05-25 00:00:00.000 | 2016-05-25 00:00:00.000 | 1 | 2 |
| 2016-05-25 00:00:00.000 | 2016-05-26 00:00:00.000 | 1 | 2 |
| 2016-06-24 00:00:00.000 | 2016-06-25 00:00:00.000 | 2 | 2 |
| 2016-06-24 00:00:00.000 | 2016-06-26 00:00:00.000 | 2 | 3 |
| 2016-06-25 00:00:00.000 | 2016-06-26 00:00:00.000 | 2 | 2 |
这就是我目前拥有的:
WITH t AS (
SELECT SWITCHOFFSET(CONVERT(DATETIMEOFFSET, dateAvailable), '+08:00') d,
ROW_NUMBER() OVER(ORDER BY dateAvailable) i
FROM user_dateTbl
GROUP BY dateAvailable
)
SELECT MIN(d),MAX(d)
FROM t
GROUP BY DATEDIFF(day,i,d)
请帮助我,谢谢。
如果您不确定我在写什么,请在下面的评论中写下 你什么意思?我无法理解您的输出请解释您的输出?我想显示至少有两个连续日期的所有日期,并计算有多少人选择了该特定日期,以及您如何确定
开始日期
和结束日期
?您的意思是什么?我无法理解您的输出请解释您的输出?我想显示至少有两个连续日期的所有日期,并计算有多少人选择了该特定日期,以及您如何确定开始日期
和结束日期
?