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

MySQL如何对同组内行进行比较并返回指定字段不匹配的行

MySQL 同分组字段差异行查询方案

核心思路

先筛选出cust分组下存在多个不同note的分组,再对这些分组的记录按cust+note去重后返回即可。

实现方案

方案1:兼容所有MySQL版本

SELECT DISTINCT cust, note 
FROM 替换为你的实际表名
WHERE cust IN (
    SELECT cust
    FROM 替换为你的实际表名
    GROUP BY cust
    HAVING COUNT(DISTINCT note) > 1
);
  • 内层子查询按cust分组,统计每个分组下不同note的数量,筛选出存在差异的cust
  • 外层查询过滤出符合条件的cust对应的记录,通过DISTINCT去重,保证同一cust下相同note仅保留一条

方案2:MySQL 8.0+ 窗口函数实现(性能更优)

WITH distinct_note AS (
    SELECT DISTINCT cust, note FROM 替换为你的实际表名
),
note_count AS (
    SELECT 
        cust,
        note,
        COUNT(*) OVER(PARTITION BY cust) AS cnt
    FROM distinct_note
)
SELECT cust, note FROM note_count WHERE cnt > 1;
  • 先对全表的cust+note做去重处理
  • 再通过窗口函数统计每个cust下不同note的数量
  • 最后过滤出note数量大于1的记录即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:06:03