我正在尝试在两个完全不同的数据集中匹配两个独立的列,我正在寻找实现这一目标的最佳方法。它不必是完全匹配,也可以是部分匹配。我尝试了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;
我愿意就如何最有效地解决此问题提出建议。感谢任何帮助,谢谢!