如何在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
我是第一次试用 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