标题: 两个数据集如何完成匹配的问题,大数据量 [打印本页] 作者: shiyiming 时间: 2009-4-29 16:16 标题: 两个数据集如何完成匹配的问题,大数据量 各位高手,请教:
我有两个数据集,集A变量为name、F_code、tradeacco、date、share,数据量56万笔;
集B变量为fundacco、name、idNo.、netNo.、tradeacco,数据量203万笔;
其中name和tradeacco是可以对应的,我想得到的结果是:集C变量为name、F_code、tradeacco、date、share、diNo.(即集A用name和tradeacco在集B中搜索匹配项,然后匹配到原集A新增变量,产生集C),请问如何实现?
多谢。作者: shiyiming 时间: 2009-4-29 21:13 标题: Re: 两个数据集如何完成匹配的问题,大数据量 1. sort both dataset A and B by name and tradeacco;
2. merge A and B by name and tradeacco
as my understanding, that is realistic only when name * tradeacco is unique in A作者: shiyiming 时间: 2009-4-30 11:01 标题: Re: 两个数据集如何完成匹配的问题,大数据量 谢谢楼上的,请问其他高手,有没有更直观的解决方案?作者: shiyiming 时间: 2009-4-30 11:36 标题: Re: 两个数据集如何完成匹配的问题,大数据量 [code:3ggjjn7w]
proc sql noprint;
create table c as
select a.name
,a.F_code
,a.tradeAcco
,a.date
,a.share
,b.idNo
from a
,b
where a.name=b.name
and a.tradeAcco=b.TradeAcco
;
quit;
[/code:3ggjjn7w]作者: shiyiming 时间: 2009-5-4 15:48 标题: Re: 两个数据集如何完成匹配的问题,大数据量 我先试试楼上的,多谢多谢!作者: shiyiming 时间: 2009-5-5 17:01 标题: Re: 两个数据集如何完成匹配的问题,大数据量 3楼大侠提供的好像不行……
我的A数据集中,有多条记录是相同的(必须保留),而B数据集中数据是唯一的,要用A当中的关键字段去B集中查找到复核要求的那个变量,然后把它加在A集对应记录的后面做新增变量,请问是否有高手可以提供解决办法,急……多谢!作者: shiyiming 时间: 2009-5-5 21:31 标题: Re: 两个数据集如何完成匹配的问题,大数据量 [code:1ia74br0]
proc sql noprint;
create table c as
select a.name
,a.F_code
,a.tradeAcco
,a.date
,a.share
,b.idNo
from a
left join b
on a.name=b.name
and a.tradeAcco=b.TradeAcco
;
quit;
[/code:1ia74br0]作者: shiyiming 时间: 2009-5-7 09:45 标题: Re: 两个数据集如何完成匹配的问题,大数据量 我的两个数据集是已导入sas数据库的,名称为mylib.icbctime和mylib.icbccustid,不是简单的a和b,请教高手。作者: shiyiming 时间: 2009-5-7 10:23 标题: Re: 两个数据集如何完成匹配的问题,大数据量 不行,它们必须叫a和b,赶紧改名吧。作者: shiyiming 时间: 2009-5-8 14:30 标题: Re: 两个数据集如何完成匹配的问题,大数据量 多谢多谢,已经成功解决了,非常方便,谢谢!作者: shiyiming 时间: 2009-5-8 17:11 标题: Re: 两个数据集如何完成匹配的问题,大数据量 赫赫~~~怎么看待兄台这句话的语气呢? <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->作者: shiyiming 时间: 2009-5-9 08:14 标题: Re: 两个数据集如何完成匹配的问题,大数据量 其实这样就可以了,不哦那个改名的
proc sql;
create table c as /*c可以命名为任何可行的data名*/
select a.name
,a.F_code
,a.tradeAcco
,a.date
,a.share
,b.idNo
from mylib.icbctime a
left join mylib.icbccustid b
on a.name=b.name
and a.tradeAcco=b.TradeAcco
;
quit;