【发布时间】:2017-06-28 02:21:19
【问题描述】:
我这几天一直在寻找解决方案。我有两个包含以下字段的表
-
表 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 距离(模糊匹配)
期望的结果:
这里的目标是执行相似匹配,然后手动扫描匹配的记录以查看匹配是否有意义。
【问题讨论】:
-
请提供样本数据和期望的结果。
-
我添加了示例数据的截图。此处的目标是使用此查询执行类似匹配,然后手动扫描匹配的记录并确定匹配是否有意义。
标签: sql sql-server matching string-matching