SQL语句计算所选值集的平均值

  • 本文关键字:平均值 语句 计算所 SQL sql
  • 更新时间 :
  • 英文 :


我是访问和SQL语句的新手。我有两个表site_id和se_waterquality_data。对于每个地点,在夏季和冬季5周内收集了几个水质参数。我希望能够运行一个查询,该查询将返回一个表,该表显示由Site_ID和示例期分组的特定参数(例如TEMP)的平均值(例如2013年夏季)。我很接近,但我的输出表仅显示平均值,而不显示站点ID或样本周期。查询还提示用户输入特定的site_id,我希望它运行所有站点的查询。

目前我的SQL语句是

SELECT Avg(SE_WaterQuality_Data.[TEMP (C)]) AS [AvgOfTEMP (C)]
FROM SE_WaterQuality_Data
WHERE (((SE_WaterQuality_Data.EMS_ID)=[Site_ID].[EMS_ID]))
GROUP BY SE_WaterQuality_Data.EMS_ID, SE_WaterQuality_Data.SummaryPeriod;

我的输出是

AveOFTEMP(C)
14.7
5.2

如何将SQL语句更改为1)运行所有站点的查询,2)返回一个表:

所需的输出

Site_ID*      SamplePeriod*   AveTemp
1             Sum2013         14.2
1             Win2013         5.6
5             Sum2013         18.5

帮助......

如果要为所有站点运行,请取出WHERE子句。如果要显示其他列,请将它们包含在您的SELECT子句中。

SELECT [EMS_ID] AS [Site_ID], 
       [SummaryPeriod] AS [Sample_Period],
       Avg(SE_WaterQuality_Data.[TEMP (C)]) AS [AvgOfTEMP (C)]
FROM SE_WaterQuality_Data
GROUP BY SE_WaterQuality_Data.EMS_ID, SE_WaterQuality_Data.SummaryPeriod;

我希望我得到了正确的详细信息。我不使用SQL Server,我使用MySQL。但是所有SQL方言中的基本想法都是相同的。

SELECT Site.Site_Id, WQ.SummaryPeriod, Avg(WQ.TEMP) AS AveTemp
FROM SE_WaterQuality_Data WQ, Site
WHERE WQ.EMS_ID   =   Site.EMS_ID
GROUP BY 1, 2
;

最新更新