【分析のためのデータ整形】Oracle Analytics CloudにおけるUnpivot機能
はじめに
今回は、Oracle Analytics Cloudを活用して、列に属性とメジャーが混合しているようなデータに対する加工方法をご紹介したいと思います。
使用するのは、関東圏(茨城県、栃木県、群馬県、埼玉県、千葉県、東京都、神奈川県)における、2023年のバナナの売上データ(仮)です。
各行には、都道府県コードと都道府県名が含まれており、続く列には各月における都道府県ごとの売上データが記載されています。
試しに同データを使用してワークブックを作成すると、本来なら属性として使用したい年月日がメジャーとして認識されてしまい、グラフを適切に作成できない状態になっています。
そのため年月日を属性、売上をメジャーとして使用できるように加工します。
方法① データフローによる加工
まず下記の手順でデータフローを作成していきます。
画面右上の【作成】を押下
【データフロー】を押下
使用する接続DBを選択し、【追加】を押下
続いて、データベース・アナリティクスの機能を用いて、Unpivotしていきます。
【データベース・アナリティクス】を追加アクションとして押下します。
ポッポアップとして表示された【Un-pivoting Data】を選択し【OK】押下します。
この操作はDBに接続した状態でないとできないため注意が必要です。
Un-pivotingする列を選択していきます。
都道府県コード、都道府県は、そのままにするためMappedAttributeに指定します。
また年月日の2023年1月~12月をUnpivotしたいため、それぞれStart ColumnとEnd Columnに入力します。
最後に日付が出力される列であるGeneratedAttribute、売上が出力される列であるAttributeValueのそれぞれに出力したい任意の列名を入力します。
以下のようにUnpivotされれば完成です。
方法② SQLを使用する
DB上でSQLを用いてビューなどを作成すればいい話ですが、OAC上でもできるのでご紹介します。
まずデータベースに接続し、任意のデータセットを押下します。
その後、【結合ダイヤグラム】タブにある【手動問い合わせ】を押下します。
SQL編集画面にて、以下のSQLのUnpivotを用いたコードで変換します。
参考:Unpivotの使い方
SELECT 都道府県コード, 都道府県, 年月日, 売上
FROM (
SELECT 都道府県コード, 都道府県, "2023年1月", "2023年2月", "2023年3月", "2023年4月", "2023年5月", "2023年6月", "2023年7月", "2023年8月", "2023年9月", "2023年10月", "2023年11月", "2023年12月"
FROM バナナ_テストデータ
)
UNPIVOT (
売上 FOR 年月日 IN ("2023年1月", "2023年2月", "2023年3月", "2023年4月", "2023年5月", "2023年6月", "2023年7月", "2023年8月", "2023年9月", "2023年10月", "2023年11月", "2023年12月"
))
ORDER BY
都道府県コード ASC,
都道府県 ASC
結合ダイヤグラムにて以下のように出力されれば、完成です。
まとめ
Unpivotのやり方として2つご紹介しました。
OAC上で行う場合、方法①をおすすめします。
方法②のSQL編集画面では、エラー内容の詳細を見るのに手間がかかるため、SQLを使用するのであればDB上でデータ加工したほうが楽だと思います。
では!