MySQL多条件筛选行:同邮箱同ServiceType重复记录仅保留一条
SQL实现组合去重方案
你要的效果本质是保留ServiceType+Email的唯一组合:同邮箱对应不同服务类型的记录全部保留,同邮箱同服务类型的重复记录只留1条。之前用GROUP BY没拿到正确结果,基本都是因为只按Email单个字段分组,把同邮箱下的不同服务类型合并掉了。
两种可直接运行的写法
1. DISTINCT 写法(最简便)
直接对两个字段做全局去重,执行后返回的结果和你给出的预期输出完全匹配:
SELECT DISTINCT ServiceType, Email FROM 替换成你的实际表名;
2. GROUP BY 写法
分组时必须同时把两个字段作为分组键,不能只按单字段分组:
SELECT ServiceType, Email FROM 替换成你的实际表名 GROUP BY ServiceType, Email;
补充说明
如果是MySQL环境且开启了only_full_group_by模式,上述GROUP BY写法完全符合语法要求,不会报错。两种写法返回的结果完全一致,选哪个都可以。
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

