SQL 查找可能的重复项

标签 sql duplicates

我需要 SQL 代码来识别表中可能的重复项。假设我的表格有 4 列:

  • ID(主键)

  • 日期1

  • 日期2

  • 组ID

(Date1, Date2, GroupID) 形成唯一键。

该表一次会填充数据 block ,并且经常会加载一个新 block ,其中包含许多已存在的记录。只要唯一的 key 捕获他们就可以了。不幸的是,有时 Date1 在第一次或后续上传时为空(或至少为“1900/01/01”)。

因此,我需要的是识别 (Date2, GroupID) 组合在何处多次出现以及一个记录 Date1 = '1900/01/01' 的位置

谢谢

卡尔

最佳答案

bkm 具有这种功能,但内部选择在某些数据库上可能表现不佳。 这更简单:

select t1.* from 
t as t1 left join t as t2 
on (t1.date2=t2.date2 and t1.groupid=t2.groupid)
where t1.id != t2.id and (t1.date1='1900/01/01' or t2.date2='1900/01/01')

关于SQL 查找可能的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326195/

相关文章:

javascript - 在另一个文本元素中复制输入文本

asp.net - "SELECT * FROM..."VS "SELECT ID FROM..."性能

java - 使用带有 IN 子句的 jooq 条件

SQL Server 2005 : Order with NULL values at the end

删除所有唯一的行

excel - 在行中查找特定的重复字母或数字

sql - 合并、组合、合并行

sql - CARD 是 SQL 中的关键字吗?或 : List of all SQL keywords

php - 时区指南?

algorithm - 在具有边界的整数数组中查找重复项