SAS SQL SUM

【SAS】SUMは足し算をする。その1【SQL】

投稿日:2022年2月10日 更新日:

今回はSQLのSUMについて解説します。


/* SUM_1 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2) AS Id4
  from data1;
quit;

  • ASにより、SUM(Id1, Id2)の合計値をId4として列にする。

/* SUM_2 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2)
  from data1;
quit;

  • SUM(Id1, Id2)の合計値を_TEMA001として列にする。

/* SUM_3 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, 10) AS Id4
  from data1;
quit;

  • ASにより、SUM(Id1, 10)の合計値をId4として列にする。
  • SUM関数には列名だけでなく、数値を入れる事もできる。

/* SUM_4 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, a) AS Id4
  from data1;
quit;

  • ASにより、SUM(Id1, a)の合計値をId4として列にしたい。
  • SUM関数の引数に文字列を用いることはできない。
  • 「a」は列名として認識されている。

/* SUM_5 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, "a") AS Id4
  from data1;
quit;

  • ASにより、SUM(Id1, “a”)の合計値をId4として列にしたい。
  • SUM関数の引数に文字列を用いることはできない。

/* SUM_6 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2) AS Id4
  from data1
  order by Id1,Id2,Id3;
quit;

  • ASにより、SUM(Id1, Id2)の合計値をId4として列にする。
  • order byにより、Id1,Id2,Id3で昇順に並べ替える。

/* SUM_7 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2) AS Id4
  from data1
  order by Id1,Id2,Id3,Id4;
quit;

  • ASにより、SUM(Id1, Id2)の合計値をId4として列にする。
  • order byにより、Id1,Id2,Id3,Id4で昇順に並べ替える。
  • AS句で出現した列もorder byで指定することができる。

/* SUM_8 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2) AS Id4
  from data1
  group by Id1,Id2,Id3;
quit;

  • ASにより、SUM(Id1, Id2)の合計値をId4として列にする。
  • group byにより、本来はId1-Id2-Id3で集計時の1グループとする。
  • 今回は要約関数を用いていないため、group by句はorder by句に読み替えられている。

/* SUM_9 */
data data1;
  Id1=1111; Id2=1111; Id3=1111;
    output;
  Id1=2222; Id2=2222; Id3=2222;
    output;
  Id1=3333; Id2=3333; Id3=3333;
    output;
run;


proc sql;
  create table data2 AS
  select *,SUM(Id1, Id2) AS Id4
  from data1
  group by Id1,Id2,Id3,Id4;
quit;

  • ASにより、SUM(Id1, Id2)の合計値をId4として列にする。
  • group byにより、本来はId1-Id2-Id3-Id4で集計時の1グループとする。
  • 今回は要約関数を用いていないため、group by句はorder by句に読み替えられている。

-SAS, SQL, SUM

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】SCAN関数は区切り文字を認識し、一部を抜き出せる。

今回はSCAN関数について解説します。 /* “1111”,”2222″,”3333″ */ data data1; Id1=”1111″,”2222″,”3333″; run; data data2 …

【SAS】データセットのオブザベーション数で処理を分岐させる方法【IF】【NOBS】

今回は、データセットのオブザベーション数により、処理を分岐させる方法について解説していきたいと思います。 (参考:【SAS】データセットの有無で処理を分岐させる方法【%IF】【EXIST】 | ビジネ …

【SAS】TRANSPOSEは縦持ち、横持ちを変換できる。その2

今回もTRANSPOSEについて解説します。 前回は縦持ち⇒横持ちにする流れで解説してきました。 【SAS】TRANSPOSEは縦持ち、横持ちを変換できる。その1 今回は横持ち ⇒ 縦持ちの流れに沿っ …

【SAS】PUTはSAS日付値をフォーマットを変換して表示する【DATE】【YYMMDD】【DATETIME】【TIME】【TOD】

今回もPUTについて解説します。  前回、PUTは数値型⇒文字型への変換ができると解説しました。(参考:【SAS】PUTは数値型を文字型に変換する | ビジネスイッチ (how-to-bus …

【SAS】ARRAYステートメントは配列を設定することができる。

今回はarrayステートメントについて解説します。 /* array */ data data1; array hairetsu(3) Id1 Id2 Id3; hairetsu(1) = 1111; …