我正在尝试完成的程序有问题。我有一个存储三个时间戳的表。它用于对查询和响应进行统计。第一个时间戳是查询的日期和时间 (Date_Sent),另外两个是我们的专家第一次响应查询 (FirstResponse) 和满足查询的时间 (LastResponse)。我应该根据以下标准创建一个图表:
- 每月查询总数
- 在不到两小时内回复的查询数量
- 在不到 24 小时但超过两个小时内回复的查询数量
- 在不到 48 小时但超过 24 小时内回复的查询数量
- 在不到 72 小时但超过 48 小时内回复的查询数量
- 在不到 96 小时但超过 72 小时内回复的查询数量
我能够做到第一个要求:
SELECT Count(Date_Sent) AS TotalQueries,
SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8) AS Month,
RIGHT(CONVERT(VARCHAR(7), Date_Sent, 120), 2) AS Month_Order
FROM AskAO.dbo.AskAO_Stats
WHERE Date_Sent BETWEEN '6/1/2012' AND '6/30/2013' AND
FirstResponse != '' AND
LastResponse != '' AND
FirstResponse < LastResponse
GROUP BY SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8),
CONVERT(VARCHAR(7), Date_Sent, 120)
ORDER BY SUBSTRING(CONVERT(VARCHAR(11), Date_Sent, 113), 4, 8)
我能够得到这个示例结果:
TotalQueries Month Month_Order
655 Jun 2013 06
289 May 2013 05
但是,我不知道如何获取其他 :( 我知道我可以通过 DateDiff 计算值,但我需要的是每月满足这些特定条件的查询数。我需要这个:
TotalQueries 2Hrs 24Hrs 48Hrs 72Hrs 96Hrs Month Month_Order
655 300 190 80 55 30 Jun 2013 06
289 180 50 30 15 14 May 2013 05
我不熟悉复杂的 SQL,所以我不确定这是否可行。