sql语句下的同比,环比操作

试题:有三个表

表一:商品销售备注

表二:商品备注

市场需求:查阅2020年,每星期的营业额,和环比环比,并依照年月展开或边次序

建资料库建表填入统计数据

偷个懒,那些句子就先略去了

给看个截屏

ps: 建表时天数要优先选择datetime ,前面要对天数展开操作方式的~

思路:分步操作方式

获得每星期的统计数据

首先的抽取天数,和获得每个月的营业额,要有 营业额,三个表肯定是要连接起来的

------- 获取天数

YEAR(字段名)—获取年份

MONTH(字段名)----获取天数

此处使用左连接的原因:是要补充商品销售表里单品的价格,要以左表为基准,要用了左连接

结果:

单步操作方式获得环比统计数据

环比:一般情况下是今年第n月与去年第n月比

计算方式:环比增长率=(本期数-同期数)÷同期数×100%

所以要有个本期统计数据与同期统计数据一一对应的表,那就要本期统计数据与同期统计数据分离

有了第一步之后很容易获得统计数据

本期统计数据:

同期统计数据:

下面就要展开表的关联了

本期、同期的区别就是年份不一样,月份一样呗,那就用月份作为连接点展开连接,代码和结果截屏如下,环比就完成了~

计算的是本期,本期统计数据是关键所以这边展开的是右连接—因为本期统计数据放在右边,放左边用左连接就好了

ps:如果觉得这边跳了步骤的话可以将查阅结果改成 * 先去查看关联之后的表

单步操作方式获得环比统计数据

环比:一般是指报告期水平与前一时期水平之比,此处指本月统计数据与上月统计数据

计算方式:环比增长速度=(本期数-上期数)÷上期数×100%

肯定也是要有表的关联了呗,怎么连呢???

既然是计算2020年的环比,那就以要计算的为基础统计数据,展开表的关联

上面已经有全部的年份、月份对应的统计数据,这一步主要是展开表的关联

三个表展开关联:

-1 2020年统计数据的表,即判断条件设置年份为2020的查阅结果表

-2 考虑到2020年一月份对应的是2019年的12月份,所以这个张表是不加判断条件的表,包含了2019年和2020年统计数据的表

解析以下这个:

这个是针对2020年2月份的统计数据,2020 02-06 的统计数据与2020 01-05的统计数据一一对应

按关联前的,a(月份)和g(月份)应该是相等的,因为对比的是上一期的,所以要错开,大的减掉等与小的

那一月份怎么办呢??

这边就不能用上面的办法了,跨年了,所以需要用and连接的方式展开限制,而且需要限定为2019年的12月份,这边因为统计数据比较少,不限定年份也没问题

三个部分用 or 并列存在,三个条件要分别用括号括起来,否则这个查阅条件等于没有。。。。

把* 换成

执行查阅:

最后一步,将统计数据放到一个表里~

通过上述说明,可以发现都关联了2020年统计数据查阅的表,所以可以将这个表放在中间 ,三个表展开关联(也是操作方式环比统计数据用右连接的原因)

结束!

发布于 2022-09-14 16:09:23
收藏
分享
海报
216
上一篇:SQL同比环比增长率计算 下一篇:weight_decay一般设置为多少_脉冲布袋除尘器的清洁时间一般为多少?
目录