0 前言
环比,表示连续2个单位周期(比如连续两月)内的量的变化比,反映本期比上期增长了多少; 计算公式:环比增长率=(本期数-上期数)/上期数×100%,例如某商城2018年2月份销售额比2018年1月份销售额增长了多少。
同比一般情况下是今年第n月与去年第n月比,用以说明本期发展水平与去年同期发展水平对比而达到的相对发展速度,计算公式:同比增长速度=(本期发展水平-去年同期水平)/去年同期水平×100%,例如某商城2019年1月份比2018年1月份销售额增长了多少等。
使用sql计算环比和同比的时候,查看了大多数人都是通过表嵌套表计算环比和同比,这里同样,我们使用几行简单的窗口函数来计算环比和同比。
2 需求描述
构造一些数据集,例如,下面是某公司在不同地区,不同省份的销售额:
日期 | 地区 | 省份 | 销售额 |
2017/12 | 华东 | 上海市 | 3600000 |
2017/12 | 华东 | 江苏省 | 2800000 |
2017/12 | 华东 | 浙江省 | 4500000 |
2017/12 | 华北 | 北京市 | 3000000 |
2017/12 | 华北 | 天津市 | 2800000 |
2018/01 | 华东 | 上海市 | 3000000 |
2018/01 | 华东 | 江苏省 | 2000000 |
2018/01 | 华东 | 浙江省 | 2500000 |
2018/01 | 华北 | 北京市 | 2600000 |
2018/01 | 华北 | 天津市 | 1500000 |
2018/02 | 华东 | 上海市 | 3500000 |
2018/02 | 华东 | 江苏省 | 2100000 |
2018/02 | 华东 | 浙江省 | 2400000 |
2018/02 | 华北 | 北京市 | 2800000 |
2018/02 | 华北 | 天津市 | 2000000 |
2018/03 | 华东 | 上海市 | 2900000 |
2018/03 | 华东 | 江苏省 | 2800000 |
2018/03 | 华东 | 浙江省 | 2900000 | <