Определите дубликаты, сравнив 2 или более столбцов из двух разных баз данных - PullRequest
1 голос
/ 18 июня 2019

У меня есть 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 000 000 записей и получить% совпадений согласно совпадениям столбцов.

...