如何在Access中找到平均值?

How to find average in Access?

我是第一次试用 Access,我正在尝试弄清楚如何真正利用 Access 的惊人功能。

有了这个,我想找到每件商品的平均数量,但不知道该怎么做。我设置了 2 tables。一个是物品清单(沙子、水等),然后与另一个列出数量和价格的 table 建立关系。

下面,我对查询 1 进行了设置和排序(我不知道为什么它不是按字母顺序排列的,尽管我按升序排序,但这不是我来这里的原因)。那么有人可以帮我尝试弄清楚如何像查询 2 中那样对每个项目的金额进行平均吗?最终,我真的只希望查询找到 MaxAve 和 MinAve,然后像下面的查询 3 那样显示这 2 个。

Query 1                Query 2                  Query 3
fldName     fldNum     fldName      fldAve      fldName       fldAve    
Sand        4          Sand         4           Sand          4
Sand        4          Water        3.8         Computer      3.35
Water       3.7        Soda         3.43        
Water       4          Computer     3.35         
Water       3.7        Phone        3.43         
Soda        3.7        Pencil       3.75         
Soda        3.3        
Soda        3.3        
Computer    3.7        
Computer    3          
Phone       3          
Phone       3.3        
Phone       4          
Pencil      4          
Pencil      4          
Pencil      3          

就像我说的,我是 Access 的新手,我只是在尝试。如果您建议以不同的方式设置查询,我真的对任何事情都持开放态度。越学越好

要获取每个字段名的平均值,只需在查询中执行此操作:

SELECT FieldName, Avg(FieldNum) as AvgQty
FROM MyTable
GROUP BY FieldName
ORDER BY FieldName

这也会为您对字段名称列进行排序。

编辑: 我认为您可以按照评论中的要求进行操作,但是您需要基于上述查询进行单独的查询。您将需要一个 UNION 查询来执行此操作。类似于:

SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty ASC

UNION ALL

SELECT Top 1 FieldName, AvgQty
FROM Query1
ORDER BY AvgQty DESC

我是凭空想出来的,所以它可能并不完美。

至于格式化字段,请在 "VBA Format Number" 上执行 google,您应该能够找到一些示例。我认为这可能会使上面的查询看起来像:

SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty ASC

UNION ALL

SELECT Top 1 FieldName, Format(AvgQty, "##.#") as AvgQty1
FROM Query1
ORDER BY AvgQty DESC