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

如何编写SQL查询返回同ID重复但对应Code值不匹配的ID

解决方案

一、SQL实现方案

你可以直接用分组聚合的逻辑完成筛选,不需要写复杂的关联逻辑,最终查询语句如下:

SELECT id
FROM `table`
WHERE id LIKE 'ID%'
GROUP BY id
HAVING COUNT(DISTINCT Code) > 1

逻辑说明

  • 按id分组后,同一个ID的两条记录会被归为同一组
  • COUNT(DISTINCT Code)统计分组内不同Code的数量:如果两个Type对应的Code一致,统计结果为1;如果不一致,统计结果为2
  • HAVING子句筛选出统计结果大于1的分组,也就是你需要的ID,天然去重不需要额外加DISTINCT关键字
    如果你的数据量在百万级以内,这个写法的执行效率足够满足需求。

二、Excel替代方案

如果你的总数据量小于10万条,且对SQL语法不熟悉,用Excel处理确实更快,操作步骤如下:

  • 导出全量的ID、Type、Code三列数据到Excel文件
  • 选中所有数据,按ID列排序,让同一个ID的两条记录相邻排列
  • 新增辅助列,假设ID在A列、Code在C列、第一行为表头,在第二行的辅助列单元格输入公式:=IF(A2=A3,IF(C2<>C3,"匹配",""),""),下拉填充所有行
  • 筛选辅助列值为「匹配」的行,对应A列的ID就是符合要求的结果

优势说明

不需要调试SQL语法,操作全程可视化,小数据量下总耗时远低于编写、调试SQL的时间。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:24:03