【SAS】PROC SQLが強かった件
SASでデータ集計をやらなきゃいけなくなって、SAS初心者*1の僕がいろいろ調べた結果、SQL
プロシージャがよさそう。使ってみた結果、とても便利だということが分かったので使い方を自分用にメモ。
SQL文がそのまま使える
MySQLなり、SQLiteなり、HiveQLやPrestoなどのSQL系の言語を触ったことがある人なら、迷うことなく使えると思います。
一応ここではSQLを触ったことがある人想定して書き進めます。「SQLの構文なんて分からない!」という方はこちらを参照してください。
逆引きSQL構文集
SQLプロシージャの基本構文は
proc sql ; title '集計のタイトル' ; SQL文 ; quit;
です。SQL文の中で使える主な構文は以下の通りのようです。(内は説明)
- SELECT (どの列を抽出するか)
- FROM (どのデータセットから抽出するか)
- WHERE (絞り込み条件)
- GROUP BY (変数ごとに集計)
- ORDER BY (並べ替え)
- HAVING (集計後に抽出)
- INNER JOIN (横結合)
- LEFT JOIN (横結合)
- FULL JOIN (横結合)
- RIGHT JOIN (横結合)
- UNION (縦結合)
- CREATE TABLE (SELECTした列を使って新たにデータセットを作る)
- INSERT (レコードの追加)
- DELETE (レコードの削除)
- UPDATE (値の更新)
その他、LIKEやIN、TO_CHAR(型変換)*2、SUM、AVGなども使えるようです。
さらに、インラインビューや副問い合わせもできるようで、要するに今まで書いてたSQL構文をそのまま書けばいいっぽいです。
これは集計作業が捗りそう。