You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MS Access中对a、b、c列值相同的行计算d列的求和与平均值

嘿,这个需求在MS Access里其实挺容易实现的,我给你两种常用的方法,看你习惯哪种操作方式:

方法一:使用查询设计视图(可视化操作)

适合不太熟悉SQL,更喜欢点选操作的朋友:

  • 打开你的Access数据库,找到目标数据表,切换到创建选项卡,点击查询设计
  • 在弹出的「显示表」对话框里,选中你的数据表,点击添加,然后关闭对话框
  • 把a、b、c、d四列依次拖到查询网格的字段行里
  • 点击设计选项卡中的汇总按钮(就是那个Σ图标),这时候网格里会多一行「总计」
  • 对a、b、c三列的「总计」行,都选择Group By——这一步就是告诉Access要按这三列的相同值分组
  • 处理d列:先保留一行d列,把「总计」行改成Sum,还可以在字段列改成SumOfD: Sum(d),方便一眼识别是求和结果;再额外添加一行d列,把「总计」行改成Avg,字段列改成AvgOfD: Avg(d)
  • 最后点击工具栏上的运行按钮(那个感叹号图标),就能看到结果啦——每一行都是a、b、c值完全相同的组,对应的d列求和和平均值都列出来了
方法二:直接编写SQL语句

如果熟悉SQL,直接写代码效率更高:

SELECT 
    a, 
    b, 
    c, 
    Sum(d) AS SumOfD, 
    Avg(d) AS AvgOfD
FROM 
    你的数据表名称
GROUP BY 
    a, b, c;
  • 把你的数据表名称替换成你实际的表名就行
  • 要是需要先过滤掉某些行再分组,还可以加WHERE子句,比如想只统计a列值大于10的组,就把代码改成:
SELECT 
    a, 
    b, 
    c, 
    Sum(d) AS SumOfD, 
    Avg(d) AS AvgOfD
FROM 
    你的数据表名称
WHERE
    a > 10
GROUP BY 
    a, b, c;

小提醒:如果a、b、c列里有Null值,Access会把所有Null值视为同一组。要是不想把Null值归为一组,可以在查询里加条件排除,比如WHERE a IS NOT NULL AND b IS NOT NULL AND c IS NOT NULL。

内容的提问来源于stack exchange,提问作者peterqng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:32:15