見出し画像

SQL分析データ準備と基礎統計#04:横持ち

質的変数を変数化する場合の定石が横持です。SQLだと以下のような形で、件数を取る場合にはmaxをsumに置き換えます(■部分は後述します)。

  • max(case when col1='a■' then 1 else 0 end) as col_a, 

  • max(case when col1='b■' then 1 else 0 end) as col_b, 

厄介なのは上記のcol1の値バリエーションが多いと書くのが大変という点です。あまりスマートなやり方ではないですが、Excelのconcatenate関数とオートフィルを使って大量生産します。まず、以下のような形でcol1バリエーションを取得します。

この結果をExcelに貼り付け、以下のような列の並びを作ります。■はExcelだと'を消してしまうのでそれを回避するために頭につけておき、あとで置換して消します。貼り付けた列以外は縦にオートフィルします(1行だけ指定すると数値部分が増加していくため、2,3行コピーしてからオートフィル)。

  • max(case when col1='

  • 貼り付け列

  • ■' then 1 else 0 end) as col_

  • 貼り付け列

すべて埋め終わったら上記の5列をconcatenateし、文字列としてコピーしなおし、■を無文字で置換して一括削除します。できた文字列を加えたSQLが以下です。

 ///

#sql #teradata #analytics  

いいなと思ったら応援しよう!