我有一个拥有超过1亿个recrods的客户表。 customer_id是唯一的。但有些客户有超过1个customer_id。所以在某些文件中,id是不同的,其余的字段值是重复的或接近重复的。我特别关注名字和姓氏,以检测近似重复的记录。(名称是阿拉伯语格式而不是罗马化)。请帮助解决这个问题。
答案 0 :(得分:1)
“其余字段值重复或接近重复......”
我会使用两种方法:一种用于重复字段,另一种用于近似重复字段。
近似重复更难,需要大量的反复试验。我所知道的大多数相似性测量都是围绕英语建立的,我不知道他们用阿拉伯名字表现得如何。请查看utl_match
:
选择utl_match.edit_distance('mErry','mArry')FROM DUAL;
答案 1 :(得分:0)
delete from CUSTOMER
where CUSTOMER_ID <> (select min(CUSTOMER_ID)
from CUSTOMER C
where C.FIRST_NAME = FIRST_NAME
and C.LAST_NAME = LAST_NAME)