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

MS Access SQL查询:筛选分组内Fruit列存在多值的所有行

MS Access SQL筛选分组内存在多种Fruit取值的行

要实现筛选出Crate分组中Fruit列存在多种不同取值的所有行,可通过两种常用方法实现:

方法一:分组统计+关联查询

先通过子查询筛选出符合条件的Crate,再关联原表获取对应行数据:

SELECT t.ID, t.Crate, t.Fruit
FROM YourTableName AS t
INNER JOIN (
    SELECT Crate
    FROM YourTableName
    GROUP BY Crate
    HAVING COUNT(DISTINCT Fruit) > 1
) AS valid_crates ON t.Crate = valid_crates.Crate
ORDER BY t.Crate, t.ID;

逻辑说明

  • 子查询通过GROUP BY Crate分组,用COUNT(DISTINCT Fruit)统计每个分组内不同Fruit的数量,HAVING子句筛选出数量大于1的Crate;
  • 将原表与子查询结果关联,仅保留这些符合条件的Crate下的所有行。

方法二:EXISTS子查询

若部分Access版本对COUNT(DISTINCT)支持有限,可改用EXISTS子查询实现:

SELECT t.ID, t.Crate, t.Fruit
FROM YourTableName AS t
WHERE EXISTS (
    SELECT 1
    FROM YourTableName AS t2
    WHERE t2.Crate = t.Crate
      AND t2.Fruit <> t.Fruit
)
ORDER BY t.Crate, t.ID;

逻辑说明

  • 对原表中的每一行,检查同一个Crate下是否存在Fruit取值不同的其他行;
  • 若存在则保留当前行,最终得到所有分组内Fruit不唯一的记录。

注意:将上述代码中的YourTableName替换为你实际使用的表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:35:15