2014年11月19日水曜日

SQLプロシジャ入門12:データセットを横結合する【LEFT,RIGHT JOIN】




今回は、横結合時に一方のデータセットに存在するレコードだけを残す方法を紹介。
とりあえずサンプルを見てみましょう。




サンプルデータ
data DT1;
  A=1; B="AA"; output;
  A=2; B="BB"; output;
run;

data DT2;
  A=2; C=10; output;
  A=3; C=20; output;
run;

DT1
 A 
B
  1  
  AA   
  2
  BB  

DT2
 A 
C
  2  
  10   
  3
  20  




①LEFT JOIN
proc sql;
   create table  DT3 as
   select    DT1.A , B , C
   from      DT1  left join  DT2  on  DT1.A = DT2.A ;
quit;


データセットDT3
  A  
 B 
  C  
  1
  AA 
 .
  2
  BB 
 10


基本構文
 from データセット1  left join データセット2  on  結合条件


解説
・FROMで結合する時、左側に書いたデータセットDT1のレコードだけ残す。
・DT1とDT2で同じ変数名Aを持ってるので、どっちのAを使うのか明確にするため、「DT1.A」とか「DT2.A」と書いてあげる必要がある。




②RIGHT JOIN
proc sql;
   create table  DT4 as
   select    DT2.A , B , C
   from      DT1  right join  DT2  on  DT1.A = DT2.A ;
quit;


データセットDT4
  A  
 B 
  C  
  2
  BB 
 10
  3
   
 20


基本構文
 from  データセット1  right join データセット2  on  結合条件


解説
・FROMで結合する時、右側に書いたデータセットDT2のレコードだけ残す。




12.データセットを横結合する【LEFT,RIGHT JOIN】


0 件のコメント:

コメントを投稿