首页 > 解决方案 > 匹配两个不同的数据集

问题描述

我正在尝试匹配两个完全不同的数据集中的两个单独的列,并且我正在寻找实现这一目标的最佳方法。它不必是完全匹配,也可以是部分匹配。我尝试了 COMPGED 方法,但花了很长时间,部分原因是我认为没有适当的连接条件。

下面是来自两个数据集的样本数据。这不是实际数据,但结构相似

Dataset 1:
Record Count: Approx 1894500

ID     name
124    senatorltd
122    pipelineinc
1034   bellcorp
1934   sachetinc
5463   altd
1928   jokerinc



Dataset 2:
Record Count: Approx 1637500

COMPANYNAME
altd
thousandislandsinc
picturesinc
nellynellycorp
cellbellassoc
neyyorkinc

目标是尝试匹配两个数据集中的名称。我尝试了下面的方法,希望我能得到一个分布,然后用 compged_vlue=0 过滤那些,但由于交叉连接需要太多时间

proc sql;
CREATE table mylibrary.companynamematching as (
select
    a.id,
    a.name,
    b.companyname,
    compged(a.name,b.companyname) as compged_vlue
from mylibrary.dataset1 as a cross join mylibrary.dataset2 as b
where compged(a.name,b.companyname)<=140
); 
quit;

我愿意接受有关如何以最有效的方式解决此问题的建议。感谢任何帮助,谢谢!

标签: sassas-macroproc-sqldatastep

解决方案


推荐阅读