見出し画像

【分析のためのデータ整形】Oracle Analytics CloudにおけるUnpivot機能


はじめに

今回は、Oracle Analytics Cloudを活用して、列に属性とメジャーが混合しているようなデータに対する加工方法をご紹介したいと思います。
使用するのは、関東圏(茨城県、栃木県、群馬県、埼玉県、千葉県、東京都、神奈川県)における、2023年のバナナの売上データ(仮)です。
各行には、都道府県コードと都道府県名が含まれており、続く列には各月における都道府県ごとの売上データが記載されています。

関東圏におけるバナナの売上データ(2023年)

試しに同データを使用してワークブックを作成すると、本来なら属性として使用したい年月日がメジャーとして認識されてしまい、グラフを適切に作成できない状態になっています。
そのため年月日を属性、売上をメジャーとして使用できるように加工します。

年月日がメジャーとして扱われてしまう

方法① データフローによる加工

まず下記の手順でデータフローを作成していきます。

  1. 画面右上の【作成】を押下

  2. 【データフロー】を押下

  3. 使用する接続DBを選択し、【追加】を押下

続いて、データベース・アナリティクスの機能を用いて、Unpivotしていきます。

【データベース・アナリティクス】を追加アクションとして押下します。
ポッポアップとして表示された【Un-pivoting Data】を選択し【OK】押下します。
この操作はDBに接続した状態でないとできないため注意が必要です。

データベース・アナリティクスを選択
データベース・アナリティクスの方法を選択

Un-pivotingする列を選択していきます。
都道府県コード、都道府県は、そのままにするためMappedAttributeに指定します。
また年月日の2023年1月~12月をUnpivotしたいため、それぞれStart ColumnとEnd Columnに入力します。
最後に日付が出力される列であるGeneratedAttribute、売上が出力される列であるAttributeValueのそれぞれに出力したい任意の列名を入力します。

Un-pivot data編集画面

以下のようにUnpivotされれば完成です。

Unpivotされたデータ

方法② SQLを使用する

DB上でSQLを用いてビューなどを作成すればいい話ですが、OAC上でもできるのでご紹介します。
まずデータベースに接続し、任意のデータセットを押下します。
その後、【結合ダイヤグラム】タブにある【手動問い合わせ】を押下します。

データセットの編集画面

SQL編集画面にて、以下のSQLのUnpivotを用いたコードで変換します。
参考:Unpivotの使い方

SQL編集画面
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上でデータ加工したほうが楽だと思います。
では!

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