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を実行すると以下のようになります。
グラフの作成
次に[+ New Visualization]でグラフを追加し、
- Chart Type: Bar
- X Column: weeek
- Y Column: cnt
- Group by: year
にします。 さらに[Y Axis]で
- Scale: Catgory
を選ぶと調子が良いです。
さいごに
以上の設定で、年間53週の3カ年対比グラフができました。
月次の値で年対比にする場合は、SQLのGROUP BYを月単位にすればすぐできます。
Excelで年対比グラフを作ろうと思うと、データのレイアウトやグラフの作り方に少し手間がありますが、re:dashなら適切にSQLを作れば簡単にグラフにできますし、データを自動リフレッシュできますので、日常的にウォッチするにはとても便利だと思います。
ダッシュボード化して、便利にご活用ください。