【发布时间】:2017-11-17 20:53:50
【问题描述】:
我在 SQL Server 2014 中工作。我有一个记录“计数”的表和计数的时间戳。计数周期是一个两小时的块,可以从任何一刻钟开始。在下面的示例数据中,计数从 16:00 开始,一直持续到 18:00。计数块可能在 01:30 开始并在 03:30 停止。
Timestamp Count
16:00:31 1
16:00:42 1
16:16:04 1
16:16:06 1
16:45:10 1
16:45:31 1
16:45:32 1
17:16:45 1
17:16:52 1
17:16:53 1
17:33:19 1
17:34:01 1
17:45:03 1
17:46:08 1
我有一个查询,它对两个小时内 15 分钟间隔内的计数求和:
SELECT
FORMAT(DATEPART(HOUR, [Timestamp]), '0#') + ':' + FORMAT(DATEPART(MINUTE, [TimeStamp]) / 15 * 15, '0#') AS QtrHrBeg
, COUNT(*) AS CountTotal
FROM
[Sandbox].[trippetoe].[SURVEYCOUNTS]
GROUP BY
DATEPART(HOUR, [TIMESTAMP])
, (DATEPART(MINUTE, [TIMESTAMP]) / 15 * 15)
结果如下:
QtrHrBeg Count
16:00 2
16:15 2
16:45 3
17:15 3
17:30 2
17:45 2
我想包括没有计数的 15 分钟间隔 - 在本例中,从 16:30 和 17:00 开始的一刻钟,如下所示:
QtrHrBeg Count
16:00 2
16:15 2
16:30 0
16:45 3
17:00 0
17:15 3
17:30 2
17:45 2
我该怎么做?
【问题讨论】:
标签: sql sql-server tsql group-by