Я пытаюсь сопоставить два отдельных столбца в двух совершенно разных наборах данных, и я ищу лучший способ добиться этого. Это должно быть не полное совпадение, а частичное совпадение. Я попробовал метод 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;
Я открыт для предложений о том, какрешить это наиболее эффективным способом. Спасибо за любую помощь, спасибо!