匹配两个不同的数据集

时间:2019-10-29 14:08:00

标签: sas sas-macro proc-sql datastep

我正在尝试在两个完全不同的数据集中匹配两个独立的列,我正在寻找实现这一目标的最佳方法。它不必是完全匹配,也可以是部分匹配。我尝试了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;

我愿意就如何最有效地解决此问题提出建议。感谢任何帮助,谢谢!

0 个答案:

没有答案