0

我在 Access 2013 数据库中有一个表,其中有很多行事件,每行都有一个“时间”列和一个“day_of_week”列。我需要查询一个结果集,该结果集显示每周每天早上 6:00 到下午 5:00 的每小时时间范围内的事件计数。我可以获得每个时间范围内的事件总数,如下所示:

SELECT "6:00AM - 6:59AM" AS [Time Range],COUNT(time) AS [Count]
FROM Incidents 
WHERE time >= #6:00:00 AM# AND time <=#6:59:00 AM#
UNION
SELECT "7:00AM - 7:59AM" AS [Time Range],COUNT(time) AS [Count]
FROM Incidents 
WHERE time >= #7:00:00 AM# AND time <=#7:59:00 AM#
UNION
...

等等等等。这是一个冗长的查询,但它完成了任务。但是,如前所述,我需要进一步深入了解在一周中的每一天的每个小时时间范围内具体发生了多少事件。所以,我需要有一个“时间”列,然后是一周中的每一天的附加列。我知道这将涉及一些分组,但我不确定必须做什么。

这是我在此的头一篇博文。希望我遵守了规则。

谢谢

4

1 回答 1

1

这个查询应该做你需要的,除了它只会将小时显示为小时数,而不是上面的查询片段显示的扩展描述:

select day_of_week, datepart("h",[time]) as hour_num, count(*)
from incidents
group by day_of_week, datepart("h",[time])

希望这可以帮助

于 2013-11-06T22:06:35.570 回答