全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学习笔记1.0
2170 0
2014-01-21

个人总结了一下mergeproc sql进行数据拼接的区别,请大家看后多多指教交流。

设拼接第一张表为A和第二张为B

拼接方式:

1、    merge是对不同数据集所有观测进行拼接;proc sql可以是inner 、left join、rightjoin和full join四种方式拼接方式。

2、    inner是拼接数据集中的交集;

3、    leftjoin是第一张表所有观测+第二张表中基于条件匹配的观测形成同一观测;

4、    rightjoin是第二张表所有观测+第一张表中基于条件匹配的观测形成同一观测;

5、    fulljoin是第一张表所有观测+第二张表所有观测(基于条件匹配的观测为同一观测);

变量名:

1、 proc sql拼接时变量名是否一致不影响匹配结果;

2、 merge拼接时变量名不一致,产生结果不一致:

a)  有相同变量名,B表中与A表中变量名相同的列观测被B替换,若A>B,则结果中包括A中相同变量未被替换部分;若A<B,则结果中相同变量观测值仅为B观测值;观测数是大小为A和B观测数的最大值;

b)  无相同变量名,则仅是将B表水平放在A表后

c)  使用BY语句时,需要对A和B进行排序。

观测值有重复:

1、 merge生成结果中,有重复的观测值为相同变量中观测值最大的数量,若A中匹配变量的观测值有2个重复值,B中有3个,则生成结果中重复变量的观测值为3;

2、 proc sql则是依据条件进行笛卡尔计算,若A中匹配变量的观测值有2个重复值,B中有3个,则生成结果中重复变量的观测值为9。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群