我正在尝试创建一个脚本,该脚本将查看sql列并根据名字,姓氏和出生日期搜索重复项。你能建议我如何开始吗?就像我可以为一个ID进行操作一样,但是我需要浏览ID的输入列表并进行搜索
id Forename Surname DateofBirth
1 John Doe 2015-05-16
2 Martin Rocks 2015-04-18
3 John Doe 2015-05-16
4 Ben Dover 2014-08-09
因此,在这种情况下,我只想编写一个可以获取每个ID并根据匹配的姓氏,姓氏和出生日期查找重复项的脚本
答案 0 :(得分:1)
使用相关子查询
select t.* from table_name t where
exists ( select 1 from table_name t1 where t1.DateofBirth=t.DateofBirth and t1.Forename=t.Forename
and t1.surname=t.surname
group by t1.DateofBirth,t1.Forename,t1.Surname
having count(*)>1 )
答案 1 :(得分:0)
您可以使用exists
:
select t.*
from table t
where exists (select 1
from table t1
where t1.Forename = t.Forename and t1.Surname = t.Surname and
t1.DateofBirth = t.DateofBirth and t1.id <> t.id
)
答案 2 :(得分:0)
您可以使用分析功能来实现您的目标,如下所示:
select * from (
select ROW_NUMBER() OVER(PARTITION BY Forename, Surname, DateofBirth order by ID) RN,
Forename,
Surname,
DateofBirth
from table_name) x
where x.rn>1