累積値しか入っていないデータを月ごとに分けたい

オプション
ユーザー11852
編集済: 5月 2023 仲間に相談

お世話になります。


毎月月末に取得し、累積値しか取得できないデータがあります。

例)

2022/01 10

2022/02 30

2022/03 70

2022/04 80

2022/05 130  


これを

2022/01 10

2022/02 20

2022/03 40

2022/04 10

2022/05 50 という風になるように加工したいのですが、ETLで可能でしょうか?

コメント

  • Matz
    Matz Contributor
    オプション

    @ユーザー11852

    やり方はいくつかありそうですが、ランクとウィンドウを使う方法はいかがでしょうか?

    LAGを利用して、日付にソートした列の1つ前の値を「前月」とした列を作成します。

    ※LAGについて

    https://domohelp.domo.com/hc/ja/articles/360042922814#4.1.

    その後、値(累計)から前月を引き算します。

    この際、先頭の値が前月がnullになるので、その場合に、0に変換する処理(ifnull)を入れています。

    他にも、こうした方がよいなど、あれば投稿お願いします!

  • ユーザー11852
    オプション

    @Matz さん コメントありがとうございました。


    私の例が足りなかったのですが、実際には各月にたくさんのアイテムが紐づいていまして、そのアイテムが月ごとにどんどん増えていくイメージです。

    2022/01 りんご 10

    2022/01 みかん 20

    2022/02 りんご 30

    2022/02 みかん 30

    2022/02 バナナ 20

    2022/03 りんご 70

    2022/03 みかん 50

    2022/03 バナナ 40

    2022/03 いちご 30

    2022/04 りんご 80

    2022/04 みかん 50

    2022/04 バナナ 60

    2022/04 いちご 50

    といった感じです。

    この場合、毎月アイテムが増えるのでLAGのように一定の数字でずらせなさそうです。

  • Matz
    Matz Contributor
    オプション

    @ユーザー11852

    アイテムごとに分割してみてはどうでしょうか?

    お知らせいただいたデータにて

    分割のオプションを指定すると

    各カテゴリ(アイテム)毎に処理されます。


  • ユーザー11852
    オプション

    @Matz さん、たびたびありがとうございます。

    お教えいただいた方法で簡単に単月の数値にすることができました。


    1か月後の日付を設定してUNIONし、グループ化という方法もトライしていたのですが、

    LAGを使う方がシンプルでいいですね。

    ありがとうございました!😊

  • Matz
    Matz Contributor
    オプション

    @ユーザー11852

    ご返信ありがとうございます。

    実装方法はいくつかあると思いますので、いろいろ試されるのも良いかと思います。

    引き続き、よろしくお願いいたします。