PROC SQL では LIMIT 句が使えない けどPROC FEDSQLでは使えるよ。ついでにOFFSET句も。の話

データ解析備忘録の記事
【SAS】PROC SQL では LIMIT 句が使えない
http://y-mattu.hatenablog.com/entry/2016/04/20/153534

を見て、なんかFEDSQLではできそうだなぁと思って調べたら、やっぱりできました。
ちなみに PROC FEDSQLっていうのは9.4から導入されたプロシジャで、PROC SQLの拡張版みたいなもんです(適当)。
SAS on demand で実行する場合、DS2と同じでlibs=workがいりますが、製品版だといらないみたい。

data A;
do X=1 to 1000;
output;
end;
run;

proc fedsql libs=work;
select X from A limit 100;
quit;

これで100obsだけアウトプットされます。

ちなみにoffsetというものもあって、これは最初の指定オブザベーションをスキップするオプションです

proc fedsql libs=work;
select X from A offset 100;
quit;

とするとX=101からアウトプットされます。

ちなみにDS2では、データセットの指定部分に直接SQLを書けますが、
そこで書くSQLはFEDSQLになります。

そのため以下のようなコード書いても通ります。

proc ds2 libs=work;
data B;
method run();
set {select X from A limit 100};
end;
enddata;
run;
quit;

0 件のコメント:

コメントを投稿