2014年10月30日木曜日

SQLプロシジャ入門10:デカルト積を作る【CROSS JOIN】




デカルト積?という方も例をみるとイメージできると思います。





サンプルデータ
data DT1;
  A=1;  output;
  A=2;  output;
  A=3;  output;
run;

data DT2;
  B="AA"; output;
  B="BB"; output;
run;

データセットDT1
  A   
   1
   2
   3

データセットDT2
 B 
  AA  
  BB



方法1
proc sql;
   create table DT3 as
   select  A, B
   from   DT1 cross join  DT2 ;
quit;

データセットDT3
  A  
B
  1 
  AA   
  2
  AA
  3
  AA
  1 
  BB   
  2
  BB
  3
  BB


基本構文
 SELECT 変数1 , 変数2 ・・・
 FROM  データセット1  CROSS JOIN データセット2


解説
2つのデータセットにあるレコード組み合わせを作ってくれる。


方法2
proc sql;
   create table DT4 as
   select  A, B
   from   DT1 , DT2 ;
quit;


基本構文
 FROM  データセット1 , データセット2

解説
方法1と同じ結果になります。
カンマで区切るだけなので、書くのは楽。





0 件のコメント:

コメントを投稿