如何查找Access 2003中某个列的平均值?
问题描述:
使用:Access 2003如何查找Access 2003中某个列的平均值?
我有一个包含至少250个数据项的表。我的目标是找到一些列的平均值(例如TotalNumSuverys列的平均值)。像SUM /(survery takers的数量)这样一个简单的数学公式将不起作用,因为取决于具体的列,条目的总数是不同的。
如何才能达到列的平均值?
(我已经尝试了“平均”聚集在查询查看,发现其平均的行而不是列。)
是否有任何SQL将允许做一些像“ForEach循环”?
- 我很新,对不起!
答
Avg()
函数仅给出列中非空值的平均值(算术平均值)。或者,在您的示例中,将从“SUM”和“survery采访者数量”中排除空值。
访问的查询设计器可能会引起混淆(最好我记得)。也许会更有意义给你,如果你使用这种模式切换到SQL视图,然后键入一个例子声明...
SELECT Avg(MyColumn) AS AvgOfMyColumn
FROM MyTable;
...替代MyColumn的列名,并为您的MyTable的表名。然后运行查询(数据表视图)以查看它提供了什么。然后,您可以切换回设计视图以查看它在那里的显示方式。
其他集合函数,不仅仅是Avg()
,也忽略空值。例如,Count(MyColumn)
会为您提供MyColumn不为空的行数。 [如果您想要统计所有行,而不管任何单个列是否包含空值,请使用Count(*)
]并且Sum(MyColumn)
将仅添加非空MyColumn值。
答
如果由于某种原因,Avg()
不为你工作,你可以使用基本的方法:
Dim rSet As DAO.Recordset, cnt As Integer, sum As Integer, avg As Variant
rSet = CurrentDb.OpenRecordset ("Select Sum(MyColumn), Count(MyKey) from MyTable")
sum = rSet.Fiels(0)
cnt = rSet.Fiels(1)
avg = sum/cnt
MsgBox "The average is " & avg
'SELECT AVG(t.ANumber)AS AvgOfANumber 从表t'给出了列的平均, 一个号码。你想要什么?请包含示例数据。 – Fionnuala 2012-02-27 21:29:03