EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

re:dashで年対比のグラフを作りました

弊社ではデータを可視化するツールのひとつにre:dashを使っています。 今回、DBをデータソースにしてre:dashを使って年対比のグラフを作ったので、その方法を紹介します。

弊社サービスのもぐナビでのクチコミ投稿数で、年対比のグラフを作ってみました。 過去3年間の週別のクチコミ投稿数を年対比の棒グラフにしてみました。

クエリの作成

まずre:dashの[Create]で[Query]を指定します。 次にソースの所に、T_USER_COMMENTというテーブルに投稿されているクチコミが入っているので、年・週でGroupByして件数を取得するように、下記のようなSQLを書きました。

SELECT COUNT(*) AS CNT,
       TO_CHAR(REGIST_DATE,'IYYY') AS YEAR,
       TO_CHAR(REGIST_DATE,'IW') AS WEEK
  FROM T_USER_COMMENT TUC
 WHERE TO_CHAR(REGIST_DATE,'IYYY')>=
       TO_CHAR(CURRENT_TIMESTAMP+'-2 years','IYYY')
 GROUP BY YEAR,WEEK
 ORDER BY WEEK,YEAR

ここで、日付から年、週の値に変換するのに、TO_CHARの'IW'、'IYYY'というのを使用しました。 これはISO年、ISO週番号というもので、1/1から年が始まるのではなく、最初の木曜日を含む週を第1週として1〜53週の番号をふるものです。

https://www.postgresql.jp/document/9.3/html/functions-formatting.html

これを使うことにより、必ず月曜から週が始まり年対比がしやすくなります。

実際にSQLを実行すると以下のようになります。

f:id:eatsmart:20190907162405j:plain

グラフの作成

次に[+ New Visualization]でグラフを追加し、

  • Chart Type: Bar
  • X Column: weeek
  • Y Column: cnt
  • Group by: year

にします。 さらに[Y Axis]で

  • Scale: Catgory

を選ぶと調子が良いです。 f:id:eatsmart:20190907172814j:plain

さいごに

以上の設定で、年間53週の3カ年対比グラフができました。

f:id:eatsmart:20190907173125j:plain

月次の値で年対比にする場合は、SQLのGROUP BYを月単位にすればすぐできます。

Excelで年対比グラフを作ろうと思うと、データのレイアウトやグラフの作り方に少し手間がありますが、re:dashなら適切にSQLを作れば簡単にグラフにできますし、データを自動リフレッシュできますので、日常的にウォッチするにはとても便利だと思います。

ダッシュボード化して、便利にご活用ください。