逐月环比比较
为比较各月,您需要使用以下窗口函数之一:
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 ____;