★データ解析備忘録★

ゆる〜い技術メモ

【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構文をそのまま書けばいいっぽいです。

これは集計作業が捗りそう。

*1:現在SAS歴3か月です。

*2:コメントの通り、to_charは実装されてませんでした。