轮到写子查询,想了想,好像有点东西,就先放一下。讲一下多表的操作,因为之前的code都是对于单个数据集来说,而多个数据集,两个就经典来,你唔可以话无三不算多,不好意思,我说二是多,就是多。哈哈,有点东西(所以呀,写笔记也挺快乐的)
主要就是合并啦,merge与set,sql过程与data step的差别,唔好问,你自己学会两者自然就知道有咩差别,就算我话比你知区别,系冒用滴。
主讲merge对于的sql。
合并的网上很多资料了,分为外合并,内合并。
又分为左合并,右合并,全合并。
合并的本质就是:笛卡尔坐标基础上找出符合某些条件的值。笛卡尔坐标,我理解不深,就知道是:数据集两两合并,结果为所有的一对多。好比如,学校分两组a,b,a组成员你和你的一个跟班,b组有:班长,学委。你们要互相比较数学成绩。那么比较一次记录一次。得到的笛卡尔坐标:你和班长,你和学委,跟班和班长,跟班和学委,就有四条纪律,这四条纪律就是原始合并的结果,数目为:n*m,n为a的观测数,m为b的观测数。那么你在这基础上就是可以通过某些条件,进一步选择。
proc sql;
title 'Table One and Table Two';
select * from one, two;
quit;
添加条件
proc sql;
title 'Table One and Table Two';
select *
from one, two
where one.x=two.x;
quit;
接着就是左合并,右合并,那边合并就那边全部保留。
proc sql outobs=10;
title 'Coordinates of Capital Cities';
select Capita