我有2个只读数据库db1和db2。我想比较这些数据库和数据库本身之间的行,以获得相似的匹配记录。
供应商名称和编号,发票金额,发票日期,发票编号是可比较的。同一笔交易中的匹配次数越多,重复交易的机会就越高。
示例1:我们具有表db1和db2的数据,预期结果如下:
表db1:
供应商名称/供应商编号/发票编号/发票日期/发票金额
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.220.00
ABB / 10025552 / 25255 / 5-01-2019 / Rs.550
Abc / 100001122 / 154666 / 5-21-2019 / Rs.180
表db2:
供应商名称/供应商编号/发票编号/发票日期/发票金额
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.550.00
Bcc / 102103312 / 154666 / 5-05-2019 / Rs.180
xyz / 100001414 / 100012 / 5-21-2019 / Rs.750.00
Acc / 10210331f / 154666 / 5-05-2019 / Rs.180
预期结果:第一对匹配所有列,第二对匹配所有列(发票金额除外),第三对仅匹配发票号和发票金额。
供应商名称/供应商编号/发票编号/发票日期/发票金额
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.220.00
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.550.00
Abc / 100001122 / 154666 / 5-21-2019 / Rs.180
Acc / 10210331f / 154666 / 5-05-2019 / Rs.180
示例2:下面的示例很可能被视为重复的可能性很高。
Supplier Name / Supplier # / Invoice # / Invoice Date / Invoice Amount
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
Cintas / 100001234 / 8001 / 5-17-2019 / Rs.450.00
示例3:该示例也将突出显示为一种潜在可能性,但可能性较小,因为匹配的条件仅显示了供应商,发票编号,发票日期。
供应商名称/供应商编号/发票编号/发票日期/发票金额
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.220.00
Cintas / 100001234 / 9001 / 6-17-2019 / Rs.550.00
他们用%(例如90/75/50/25%)对潜在重复项进行排名,百分比越高,工具感觉到重复项的可能性就越大。
请建议使用算法或工具从大约10,00,000条记录中查找重复项,并根据列匹配项获得%匹配项。