月次比較(Month-over-month)
月を比較するには、次のいずれかのウィンドウ関数を使います。
LAG(value, offset)は、レポートの現在行から offset 件だけ前の値を出力します。LEAD(value, offset)は、レポートの現在行から offset 件だけ後の値を出力します。
目標は、各国の月次の閲覧数推移(month-over-month views)を表示するレポートを作成することです。いくつかのヒントです。
- 日付を月単位にまとめる必要があります。これには
DATE_PART()関数を使えます。 - 変化率(percent change) は次の式で計算できます:
(value)/(previous_value) - 1。 LAG()またはLEAD()に offset を指定しない場合、既定値は 1 です。
このテーブルは 6 月中旬で終わっているため、クエリは 5 月末までのデータのみを含むように設定されています。
この演習はコースの一部です
SQLでのレポーティング
演習の手順
web_dataからcountry_idを取得し、DATE_PART()関数でmonthを作成します。- 月内の合計閲覧数を取得する
month_viewsを作成します。 - 指定した国について、先月の合計閲覧数を取得する
previous_month_viewsを作成します。 - 指定した国について、今月を先月と比べた変化率(percent change)を計算する
perc_changeフィールドを作成します。負の値は閲覧数の減少、正の値は増加を表します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;