SQL 综合练习讲解专题5:月度数据计算同比与环比

SQL 综合练习讲解专题5:月度数据计算同比与环比
计算出 2017 年 9 月与去年同期对比销售额与会员增长率、上月环比销售额与会员增长率
内容:月份 销售金额 销售量 客单价 会员数 销售同比 销售环比 会员同比 会员环比
说明:
环比=(当月-上月)/上月
同比=(当月-去年同月)/ 去年同月
业务背景和价值说明:
项目的实战背景是二家超市的真实数据,数据时间段是从 20160101 到 20171031。
超市的主要商业场景
1) 在实际工作中同、环比的计算是最常用来判断业务健康度情况的指标
2) 同比、环比以及目标达成率是日常业务分析中,来对业务情况做出评判有基准
商业知识点思考:
1) 除了同比、环比、目标达成率,还有哪些比率类的指标来衡量呢?
2) 当同、环比下降后,接下来应该如何去分析与定位数据变化的原因呢?
SQL 知识点:
子查询
变量定义
逻辑说明:
1、 先统计 9 月的相关指标数据。
2、 创建相关几个变量,用于存储去年 9 月份以及 8 月的相关值。
3、 通过子查询合并一起
--- 参考代码
select order_number
,sale_value
,sale_qty
,kdj
,member_nubmer
,concat(truncate((sale_value-@sale_value)/@sale_value*100,2),'%
') as wb
,concat(truncate((member_nubmer-@member_nubmer)/@member_nubmer*
100,2),'%') as member_wb
,concat(truncate((sale_value-@sale_value_last)/@sale_value_last
*100,2),'%') as wb_last
,concat(truncate((member_nubmer/@member_nubmer_last)/@member_nu
bmer_last*100,2),'%') as member_wb_last
from
(select count(distinct t.SheetID) as order_number
,sum(t.SaleValue) as sale_value
,sum(t.Qty) as sale_qty
,sum(t.SaleValue)/count(distinct t.SheetID) as kdj
,count(distinct t1.MemberID) as member_nubmer
from demo.orderitem t
join demo.orderlist t1 on t1.SheetID = t.SheetID
where t.SDate between '20170901' and '20170930'
and t1.SDate between '20170901' and '20170930'
and t1.ShopID='CDLG'
) t2
join
(select @sale_value :=sum(t.SaleValue)
,@member_nubmer :=count(distinct t1.MemberID)
from demo.orderitem t
join demo.orderlist t1 on t1.SheetID = t.SheetID
where t.SDate between '20170801' and '20170831'
and t1.SDate between '20170801' and '20170831'
an
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

SQL 综合练习讲解专题5:月度数据计算同比与环比

SQL 综合练习讲解专题5:月度数据计算同比与环比
计算出 2017 年 9 月与去年同期对比销售额与会员增长率、上月环比销售额与会员增长率
内容:月份 销售金额 销售量 客单价 会员数 销售同比 销售环比 会员同比 会员环比
说明:
环比=(当月-上月)/上月
同比=(当月-去年同月)/ 去年同月
业务背景和价值说明:
项目的实战背景是二家超市的真实数据,数据时间段是从 20160101 到 20171031。
超市的主要商业场景
1) 在实际工作中同、环比的计算是最常用来判断业务健康度情况的指标
2) 同比、环比以及目标达成率是日常业务分析中,来对业务情况做出评判有基准
商业知识点思考:
1) 除了同比、环比、目标达成率,还有哪些比率类的指标来衡量呢?
2) 当同、环比下降后,接下来应该如何去分析与定位数据变化的原因呢?
SQL 知识点:
子查询
变量定义
逻辑说明:
1、 先统计 9 月的相关指标数据。
2、 创建相关几个变量,用于存储去年 9 月份以及 8 月的相关值。
3、 通过子查询合并一起
--- 参考代码
select order_number
,sale_value
,sale_qty
,kdj
,member_nubmer
,concat(truncate((sale_value-@sale_value)/@sale_value*100,2),'%
') as wb
,concat(truncate((member_nubmer-@member_nubmer)/@member_nubmer*
100,2),'%') as member_wb
,concat(truncate((sale_value-@sale_value_last)/@sale_value_last
*100,2),'%') as wb_last
,concat(truncate((member_nubmer/@member_nubmer_last)/@member_nu
bmer_last*100,2),'%') as member_wb_last
from
(select count(distinct t.SheetID) as order_number
,sum(t.SaleValue) as sale_value
,sum(t.Qty) as sale_qty
,sum(t.SaleValue)/count(distinct t.SheetID) as kdj
,count(distinct t1.MemberID) as member_nubmer
from demo.orderitem t
join demo.orderlist t1 on t1.SheetID = t.SheetID
where t.SDate between '20170901' and '20170930'
and t1.SDate between '20170901' and '20170930'
and t1.ShopID='CDLG'
) t2
join
(select @sale_value :=sum(t.SaleValue)
,@member_nubmer :=count(distinct t1.MemberID)
from demo.orderitem t
join demo.orderlist t1 on t1.SheetID = t.SheetID
where t.SDate between '20170801' and '20170831'
and t1.SDate between '20170801' and '20170831'
an
查看更多

相关文章

您可能关注的文档