我一直在试图寻找一个解决方案来解决这个问题。我有两个表具有以下字段如何使用基于SQL Server或R中多个列的类似匹配来比较两个表
- 表1 -
OEM_NAME, OEM_MODEL, SUPPLIER - contains 413000 records
- 表2 -
OEM_Name, Model, Supplier_Name, SUPPLIER_MODEL - contains 208000 records
的问题是,该字段的值不完全匹配,我试图在连接条件中使用多个字段的两个表之间实现类似的比较。但是,这个查询是永久执行的。是否有更好的方式在两个具有多个字段的表之间实现类似的比较。我熟悉SQL Server和R,所以我非常感谢任何可以在这些平台中工作的解决方案/指导。
SELECT COUNT(*)
FROM Catalog_Table as CAT
INNER JOIN POPULATION_TABLE AS POP
ON POP.OEM_NAME LIKE CONCAT(CAT.OEM_NAME,'%')
AND POP.OEM_MODEL LIKE CONCAT(CAT.MODEL,'%')
AND POP.SUPPLIER LIKE CONCAT(CAT.SUPPLIER_NAME,'%')
更新:
样本数据:
我也尝试另一种方法来解决这个问题。我串接在这两个表中的输入字段,以形成键,并试图用此单一串联字段进行匹配 - 无论确切和Levenshtein距离(模糊匹配)
所需的结果:
目标这里是执行相似的匹配,然后手动扫描匹配的记录以查看匹配是否有意义。
请提供样本数据和预期的结果。 –
我已添加示例数据的屏幕截图。这里的目标是使用此查询执行类似的匹配,然后手动扫描匹配的记录并确定匹配是否有意义。 – Satbir