我试图完成一个程序的问题。我有一张存储三个时间戳的表格。它用于统计查询和响应。第一个时间戳用于查询日期和时间(Date_Sent),另外两个是我们第一次对查询(FirstResponse)做出响应的专家之一,以及当查询得到满足时(LastResponse)。我应该创建基于以下条件的曲线图:在一条SQL语句中计算多个值
- 每月的查询总数
- 查询的数量在不到两个小时
- 查询的数量较少回应回应超过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,所以我不确定这是否可行。
您如何定义“回复”:最后一次回复和第一次回复之间的时间,或发送日期和第一次回复之间的时间? –
你试图在SQL中完成所有的任何理由?你可以用代码撤回记录集和切片/骰子吗? – David
@StasYarkin感谢您的回应:)时间回复是在发送日期和第一个回复之间:)基本上,我正在计算我们的专家如何快速响应个别查询。 – Poch