逐月比較
為了比較每個月,你需要使用以下其中一個視窗函式:
LAG(value, offset):會輸出報表中相對於目前列,往前 offset 筆的值。LEAD(value, offset):會輸出報表中相對於目前列,往後 offset 筆的值。
你的目標是建立一個報表,顯示各國家逐月的瀏覽量變化。幾個提示:
- 你需要把日期分箱到各月份。可以使用
DATE_PART()函式來完成。 - 你可以用下列公式計算百分比變化:
(value)/(previous_value) - 1。 - 如果在
LAG()或LEAD()中未提供 offset,預設值為 1。
由於資料表在 6 月中旬就結束,查詢已設定只包含截至 5 月底的資料。
本練習屬於課程
SQL 報表製作
練習說明
- 從
web_data取出country_id,並使用DATE_PART()函式建立month。 - 建立
month_views,彙總該月份內的總瀏覽量。 - 建立
previous_month_views,抓取該國家上個月的總瀏覽量。 - 建立欄位
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 ____;