SASのSQL独自の便利機能「CALCULATED」キーワード
MySQLとかでは動かなかった。
このキーワードを使うと、SELECT句で作成した変数を、同じSQL内で参照することが出来る。
*** サンプルデータ ; data DT1; do V1=1 to 3 ; output; end; run; |
*** 普通は以下のエラーが出る ; proc sql; select sum(V1) as V2 , V2+1 as V3 from DT1; quit; ERROR: 次の列はテーブル内に存在しません: V2. |
*** 「CALCULATED」を使った場合 ; proc sql; select sum(V1) as V2, calculated V2+1 as V3 from DT1; quit; |
正直この例だと、「sum(V1)+1 as V3」と書いてもいいけど、、
・「V2」の式が長文の場合、「V3」作る時にもう1回長文かく手間が省けていい。
・内部の処理効率的に「calculated」を使った方がいいのかも。
という理由で、個人的には「calculated」を愛用してる。