2016年8月18日木曜日

SQLプロシジャ内でもSAS関数が使える


MIN、MAX、PUT、などなどデータステップで使っているSAS関数は、SQLプロシジャでも普通に使えます。



* サンプルデータ作成 ;
data DT1;
input A B C;
cards;
1 2 0
2 4 3
;
run;

* SQLプロシジャでSAS関数を利用する ;
proc sql;
   select min(A,B,C) as MINVAL
   from DT1;
quit;

上記ではSASのMIN関数を使ってレコードごとに変数A,B,Cの中の最小値を求めています。


では以下の例はどうでしょうか。
proc sql;
   select min(A) as MINVAL
   from DT1;
quit;

ここで使っているMIN関数は、SQLの集計関数です。
(つまり変数Aの全レコード中の最小値を求めています。)

MIN、MAX、SUMなど、SAS関数とSQL集計関数で同じ名前を持つものがある場合、
引数の数でどちらの関数かを判断しています。

たとえば、
MIN(A,B,C)」 というように引数を複数かけば、SAS関数として解釈し、
MIN(A)」 というように引数が1つであれば、SQL集計関数として解釈されます。


まさにSASとSQLのいいとこどりって感じですね。


関連記事
SQLプロシジャでデータセットオプションを使うメリット。


0 件のコメント:

コメントを投稿