首页 > 解决方案 > 按日期分组 Davg 结果

问题描述

我有以下看起来像这样的数据集。我只想选择那些ESITwoToFive变量为“1”的人,然后计算total_ED_LOS每个唯一日期的平均值。例如,2 月 7 日的平均值只有 ID 1 和 3 的值。

ID  CheckinDate  ESITwoToFive    Total_ED_Los
 1   Feb 7             1               23
 2   Feb 7             0               23
 3   Feb 7             1               28
 4   Feb 8             1               43
 5   Feb 8             1               83
 6   Feb 8             0               29
 7   Feb 9             1               93
 8   Feb 9             1               77
 9   Feb 9             0               33

我使用以下语法,但我的输出包含每个日期的相同平均值。

SELECT [Fast Track Quality Research ESI Levels].checkin_date, 
DAvg("total_ed_los","Fast Track Quality Research ESI Levels","ESITwoToFive = 
'1'") AS Expr1

FROM [Fast Track Quality Research ESI Levels]
GROUP BY [Fast Track Quality Research ESI Levels].checkin_date;

我得到的输出......

Checkindate          Avg LOS
 Feb 7                   24
 Feb 8                   24
 Feb 9                   24

期望的输出......

 Checkindate             Avg LOS
 Feb 7                   24
 Feb 8                   54
 Feb 9                   86

标签: ms-accessms-access-2010

解决方案


我建议使用该Avg函数而不是DAvg域聚合函数,例如:

select t.checkin_date, avg(t.total_ed_los) as [Avg LOS]
from [Fast Track Quality Research ESI Levels] t
where t.esitwotofive = 1
group by t.checkin_date

您示例中的DAvg函数正在计算按日期聚合数据之前的所有记录的平均值,因此对于查询输出的每条记录,您都会收到相同的结果。ESITwoToFive = '1'


推荐阅读