![[新機能]Lookerで前月比・前年比などの比較値を簡単に出せる新しいメジャータイプ「type: period_over_period」がリリースされました](https://images.ctfassets.net/ct0aopd36mqt/wp-refcat-img-3c76666f3f51fe20a967546e63cb88da/9adf388781f654b7988aaf8d205cef1f/looker-logo-google_1200x630.png)
[新機能]Lookerで前月比・前年比などの比較値を簡単に出せる新しいメジャータイプ「type: period_over_period」がリリースされました
さがらです。
Lookerの新機能として、前月比・前年比などの比較値を簡単に出せる新しいメジャータイプtype: period_over_period
がリリースされました! ※2025/4/30時点、プレビュー機能のためご注意ください。
この機能を試してみたので、本記事でまとめてみます。
事前準備
以下のシンプルなlookmlファイルを一つ用意して、このviewに対してtype: period_over_period
を試していきます。
explore: order_items_pop {}
view: order_items_pop {
sql_table_name: looker-private-demo.ecomm.order_items ;;
dimension_group: created {
#X# group_label:"Order Date"
label: "受注"
type: time
timeframes: [time, hour, date, week, month, year, hour_of_day, day_of_week, month_num, raw, week_of_year]
sql: ${TABLE}.created_at ;;
}
dimension: status {
label: "ステータス"
type: string
sql:
CASE
WHEN ${TABLE}.status = 'Processing' THEN 'プロセス中'
WHEN ${TABLE}.status = 'Shipped' THEN '出荷'
WHEN ${TABLE}.status = 'Complete' THEN '完了'
WHEN ${TABLE}.status = 'Returned' THEN '返品'
WHEN ${TABLE}.status = 'Cancelled' THEN 'キャンセル'
ELSE null
END ;;
}
dimension: sale_price {
label: "売上"
type: number
value_format_name: usd
sql: ${TABLE}.sale_price;;
}
measure: total_sale_price {
label: "総売上"
type: sum
value_format_name: usd
sql: ${sale_price} ;;
}
measure: average_sale_price {
label: "平均売上"
type: average
value_format_name: usd
sql: ${sale_price} ;;
}
}
基本的な使い方
以下のように、type: period_over_period
のメジャーを定義すればOKです。
必要な項目は以下になります。
based_on
:比較値を取りたいメジャーのフィールド名をview名.フィールド名
の形で指定based_on_time
:使用する時間ディメンションのフィールド名をview名.フィールド名
の形で指定period
:比較対象期間として、どれだけの期間遡るかを指定- year、fiscal_year、quarter、fiscal_quarter、month、week、date、いずれかを指定する
kind
:比較時の計算の種類を指定。以下の3つから指定可能previous
:比較対象の値をそのまま表示difference
:比較対象の値との差分を表示relative_change
:比較対象の値との変化率を表示
measure: total_sale_price_last_year {
label: "総売上(前年の値)"
value_format_name: usd
type: period_over_period
based_on: order_items_pop.total_sale_price
based_on_time: order_items_pop.created_year
period: year
kind: previous
}
kind
を3種類並べると、こんな感じになります。
measure: total_sale_price_last_year {
label: "総売上(前年の値)"
value_format_name: usd
type: period_over_period
based_on: order_items_pop.total_sale_price
based_on_time: order_items_pop.created_year
period: year
kind: previous
}
measure: difference_total_sale_price_last_year {
label: "総売上(前年との差)"
value_format_name: usd
type: period_over_period
based_on: order_items_pop.total_sale_price
based_on_time: order_items_pop.created_year
period: year
kind: difference
}
measure: changerate_total_sale_price_last_year {
label: "総売上(前年からの変化率)"
value_format_name: usd
type: period_over_period
based_on: order_items_pop.total_sale_price
based_on_time: order_items_pop.created_year
period: year
kind: relative_change
}
気になることを試してみた
type: period_over_period
のメジャーと前年比を計算できないディメンションだけを、Exploreで一緒に選択
下図のように、ステータス
という注文ステータスを返すディメンションだけを選択した上で、type: period_over_period
のメジャーを選択するとどうなるのかを検証してみます。
すると、下図のようにエラーとなりました!
エラーメッセージに沿って、Allowed fieldsに指定のあるフィールドを追加するとエラーは解消されました。比較期間をちゃんと計算できるディメンションを選択していると、他のディメンションが選択されていても問題なく計算できるようです。
type: period_over_period
のメジャーの設定をperiod: month
として、Exploreでyearのディメンションを選択
type: period_over_period
のメジャーの設定で下記のようにperiod: month
として、yearのディメンションを選択するとどうなるかを検証してみます。
measure: difference_total_sale_price_last_month {
label: "総売上(前月との差)"
value_format_name: usd
type: period_over_period
based_on: order_items_pop.total_sale_price
based_on_time: order_items_pop.created_month
period: month
kind: difference
}
すると、下図のようにエラーとなりました。type: period_over_period
でperiod: month
のメジャーが選択されている場合、monthかdateのフィールドが必須となるようです。
最後に
Lookerの新機能として、前月比・前年比などの比較値を簡単に出せる新しいメジャータイプtype: period_over_period
がリリースされたので早速試してみました。
計算できない場合はちゃんとエラーを返してくれますし、定義の方法も非常に簡単なので、これは本当に嬉しい機能ですね…!Lookerをご利用の方にはぜひ試して頂きたいです!