データベースに登録された誕生日から年代別のデータを出したい
概要
データベースに誕生日を登録しているので、Loocker Studioで年代別の円グラフを作成し表示する。
- データベースにbirthdayのカラムがあり、値は1986/07のようになっている
- 誕生日未設定の人は、1900/01が登録されている
- 年代の幅は、40以下、50〜54、55〜59、60〜64、65〜69、70以上
準備
計算フィールドの追加
入力項目は、
- フィールド名
- 数式
数式には以下のコードを入れました
CASE
WHEN birthday = "1900/01" THEN "未設定"
ELSE
CASE
WHEN (YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12 + (MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER)) <= 49 * 12 THEN "49歳以下"
WHEN (YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12 + (MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER)) BETWEEN 50 * 12 AND 54 * 12 THEN "50歳〜54歳"
WHEN (YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12 + (MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER)) BETWEEN 55 * 12 AND 59 * 12 THEN "55歳〜59歳"
WHEN (YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12 + (MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER)) BETWEEN 60 * 12 AND 64 * 12 THEN "60歳〜64歳"
WHEN (YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12 + (MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER)) BETWEEN 65 * 12 AND 69 * 12 THEN "65歳〜69歳"
ELSE "70歳以上"
END
END
(YEAR(CURRENT_DATE()) - CAST(SUBSTR(birthday, 1, 4) AS NUMBER)) * 12
で誕生年と現在年の差を月数に換算します。
(MONTH(CURRENT_DATE()) - CAST(SUBSTR(birthday, 6, 2) AS NUMBER))
で誕生月と現在月の差を計算します。
これらを合計して、誕生日からの経過月数を計算し、対象年齢に対応する月数と比較します。
例えば、「49歳以下」の条件は、49歳×12ヶ月 = 588ヶ月以下の人に該当するようにしています。
円グラフの追加
グラフをクリックすると「設定」がでるので、
- データソースの選択
- 期間のディメンション(created_atなど)
- ディメンション → 作成した計算フィールド「年代別」を選択
- 指標を選択(idのカラムなど)
これで表示できました。