SQL - 如何在报表中包含列的平均值

时间:2015-05-13 10:36:04

标签: sql ms-access

以下是该方案:

我有一个Access项目,其中的表包含以下数据:

Activity table: ActivityName, ActivityPopularityRating
Volunteer table: VolunteerName, VolunteerRating

每项活动都可以有很多志愿者,每位志愿者都有一个评级。

我必须创建一份报告,指出每项活动,参与该活动的志愿者的姓名和评级,以及参加每项活动的志愿者的平均志愿者评分。附上一个例子。

我已经创建了SQL查询,但我不确定是否应该生成查询中所需的平均值,或者如果Access中有某些功能允许我在报告中执行此操作。

这是我的查询:

SELECT Activity.ActivityName,
       Activity.ActivityPopularityRating, 
       StudentVolunteer.VolunteerName,
       StudentVolunteer.VolunteerRating, 
       AVG(StudentVolunteer.VolunteerRating)
FROM Activity
  INNER JOIN StudentVolunteer ON Activity.ActivityName = StudentVolunteer.ActivityName
GROUP BY Activity.ActivityName

感谢所有帮助

由于

Report Example

1 个答案:

答案 0 :(得分:0)

要在结果中添加总行(此处显示平均评级),您可以在MsAccess中使用UNION ALL(或在另一个DBMS中使用ROLLUP)。但是,没有必要在查询中添加此行。数据已经存在(这是所选评级的平均值,可以很容易地从中计算出来)。

因此,请从查询中删除GROUP BY和AVG行,并在报表图层中添加AVG(VolunteerRating)。然后,报告将根据评分计算出平均值。