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

MS Access如何按关联列条件筛选分组最大值对应记录

Access按分组筛选列最大值对应记录实现方案

直接用以下两种方法即可实现需求,适配所有MS Access版本:

方法1:SQL查询法(推荐,操作最快)

  1. 打开数据库后点击「创建」-「查询设计」,关闭弹出的显示表弹窗,点击左上角切换到「SQL视图」
  2. 粘贴以下代码,将代码中的替换为你的实际表名改成你存储测试数据的表名称即可运行:
SELECT t1.[Column A], t1.[Column B]
FROM 替换为你的实际表名 AS t1
WHERE t1.[Column B] = (
    SELECT MAX(t2.[Column B])
    FROM 替换为你的实际表名 AS t2
    WHERE Split(t2.[Column A], "-")(0) = Split(t1.[Column A], "-")(0)
);

代码说明

  • 子查询会自动按Column A中短横线前的编码(即AA/BB/CC这类分组标识)分组,计算每个分组下Column B的最大值
  • 外层查询会筛选出所有B值等于所属组最大值的记录,和你预期输出AA-02、BB-04、CC-06的结果完全匹配
  • 如果你的分组规则不是按短横线分割,只要修改子查询里的WHERE匹配条件即可,比如固定取前两位作为分组标识就改成Left(t2.[Column A],2) = Left(t1.[Column A],2)
  • 如果同个分组下有多条记录的B值并列最大,查询会返回所有符合条件的记录,需要单条返回的话可以额外加排序取首条的规则即可

方法2:设计视图无代码操作(适合不想写SQL的场景)

  1. 新建汇总查询:添加你的测试表,在字段行第一列输入分组标识: Split([Column A],"-")(0),对应总计行选「Group By」;字段行第二列选Column B,对应总计行选「Max」,运行确认能正确输出每个分组的最大B值后,保存查询命名为分组最大值
  2. 新建选择查询:同时添加原测试表和刚才保存的分组最大值查询,拖动原表计算出的「分组标识」字段和分组最大值查询里的分组标识字段建立关联,再拖动原表的Column B和分组最大值里的最大B值字段建立关联
  3. 选择原表的Column A、Column B作为输出字段,运行即可得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:16:04