统计查询水质MS ACCESS

Statistics Query Water Quality MS ACCESS

我有一个水质数据库,我想 运行 对其进行一些查询。此查询的 table 有以下 4 列:

Site_ID、采样日期、参数和结果

数据看起来像这样(示例)

LB-100,2014 年 1 月 14 日,"Calcium, Dissolved","2.2"

LB-100,2015 年 8 月 30 日,"Calcium, Dissolved","2.2"

LB-100,2014 年 2 月 14 日,"Calcium, Dissolved","2.1"

LB-500,2014 年 1 月 14 日,"Calcium, Dissolved","8.0"

LB-100,2014 年 3 月 14 日,"Calcium, Dissolved","2.4"

LB-100,2014 年 4 月 14 日,"Calcium, Dissolved","2.4"

LB-100,2014 年 5 月 14 日,"Calcium, Dissolved","2.1"

我想要一个查询来提供 2014 年所有选定示例站点的最小值、最大值、平均值、SD 和计数,以便创建一些年度报告。对于上面的 7 行示例,我希望得到一个如下所示的查询输出行:

LB-100,"Calcium, Dissolved", 2.1, 2.4, 2.24, 0.14, 5(这些值对应于 LB-100 的所有 2014 年数据的最小值、最大值、平均值、SD 和计数)。

到目前为止,我在查询设计视图中完成了以下操作。 screenshot

问题,查询 returns 正确的记录但没有计算出所需的统计信息。相反,它只是 returns 5 行,如下所示:

LB-100, 1/14/2014,"Calcium, Dissolved","2.2", "2.2", "2.2", , 1

LB-100, 2/14/2014,"Calcium, Dissolved","2.1", "2.1", "2.1", , 1

LB-100, 3/14/2014,"Calcium, Dissolved","2.4", "2.4", "2.4", , 1

LB-100, 4/14/2014,"Calcium, Dissolved","2.4", "2.4", "2.4", , 1

LB-100, 5/14/2014,"Calcium, Dissolved","2.1", "2.1", "2.1", , 1

当然,我可以简单地在结果视图中添加一个总计行来获取所需的信息,但这是不可行的,因为我有数百个站点和 50 个或更多参数。

必须有一种简单的方法可以在查询中执行此操作?!

感谢您的帮助!

您的数据 returns 与 table 行完全相同的原因是因为您的组级别等于单位级别。基本上,group by 没有组,因为你的查询是 one-to-one 实际 tables(注意你的计数都是 1,聚合彼此相等,标准差为空)。

尝试删除聚合查询中的 SampleDate 字段(因为 table 似乎包含日期级条目)。通过这样做,您可以按 Site IDParameter 分组。但请注意,您仍然可以在 WHERE 子句中按样本日期进行过滤:

SELECT [SITE ID], [Parameter],
       Min(Results) As MinOfResults,
       Max(Results) As MaxOfResults,
       Avg(Results) As AvgOfResults,
       StDev(Results) As StDevOfResults,           
       Count(Results) As CountOfResults
FROM Chemistry1
WHERE [SITE ID] = 'LB-100' 
  AND [Parameter] = 'Calcium, Dissolved'
  AND Year([SampleDate]) = 2014
GROUP BY [SITE ID], [Parameter]