计算 Access table 中每月的记录数,其中包含 25 年的数据

Counting the number of records per month in an Access table which holds 25 years worth of data

这可能是一个非常简单的问题,但我找不到与跨越这么长时间的数据集相关的答案。 对于初学者来说,这是从较早的 post 开始的,我想计算跨越数年的数据集中每个月的记录数 - 问题的主体如下:

这个问题的评论告诉我,将包含数据的csv文件导入Microsoft Access,然后查询数据会更容易。我听从了那些评论者的建议,将 (6,224,199) 条记录导入了新的 Access table,但现在我仍然坚持编写 SQL 查询。

我对 Access 没有太多经验,但我了解到我应该使用带有 COUNT 命令的语句来累加每个月的事故报告数量。这个问题是数据跨越 25 年,所以根据我拼凑的(基本)语句,我必须 运行 它 300 次才能获得每个月的报告总数年.


编辑

我删除了开头的很多列 table - 我这样做是因为我只需要知道每月发生了多少事故,而 csv file/starting table 有很多对我没有用的信息(例如道路类型、警察部队、光照条件)。 table 具有以下数据类型的以下列:

在输出中,我只需要按最早(1979 年 1 月)到最晚(2004 年 12 月)顺序排列的每月事故数量。因为每年每个月只有一个数字,所以可以有第二列列表 month/year,但这对我使用数据来说不是必需的。

我们可以给您 SQL,但我怀疑那样会更令人困惑。 因此,假设您正在使用查询 UI:

您需要单击顶部的 'sum' 符号(见图)以打开聚合,然后尝试如下操作:

这是您可以用来执行此操作的 SQL。这与 Ben 在上面回答您的内容基本相同。只需创建一个新查询,然后右键单击并 select SQL 查看。然后将其复制到:

SELECT Format([Date],"yyyy-mm") AS [Month of Crashes], Count([Accidents].ID) AS [Crashes this Month] INTO Crashes_per_Month
FROM [Accidents]
GROUP BY Format([Date],"yyyy-mm");

注意:此 SQL 假定您的起始 table 名为 Accidents。对于提到 table 名称 Accidents 的两个实例,您必须将其更改为您的 table 名称。