日常运营数据统计实践

本文介绍了如何计算和统计业务数据的环比和同比指标,通过设置时间范围表来高效地组织数据。以周和月为例,详细阐述了统计时间范围的定义,并展示了如何结合业务数据进行计算。在数据量庞大的情况下,提出了通过预先汇总和存储统计结果以提升读取性能的解决方案,简化了数据统计流程。
摘要由CSDN通过智能技术生成

日常运营需要大量的数据用作业务分析以及决策,涉及的指标众多,最常见的指标类似销售的环比和同比。我们常用来计算环比和同比的公式如下:

环比增长率 =(当前周期数 - 上一周期数)/ 上一周期数 * 100%
同比增长率 =(当前周期数 - 历史同期数)/ 历史同期数 * 100%

从以上公式可以看出,两个指标的计算需要知道当前周期数据、上一周期数据以及历史同期数。我们以月的维度来简单阐述下三个指标:当前周期的数据=当月1号至今的累计数据、上一周期数据=上月相同天数累计数据、历史同期数据=上一年同一月相同天数累计数据。如果是完整月份,则为两个满月的对比(注意存在大小月)。

上面描述的概念性的东西,相信大家都已经明白。下面进入本期主要内容,环比同比指标统计的实现设计。从上面的概念描述,我们可以概况性的看到,其实当前周期数、环比和同比的共通点是,均为时间范围内的数据统计,差异点是统计数据时间范围的不同。由此,我们设计了以下的时间范围R表来描述需求,以周月为例。

统计时间

类型

当前周期开始时间

当前周期结束时间

环比同期开始时间

环比周期结束时间

同比周期开始时间

环比周期结束时间

2020-10-02

2020-09-28

2020-10-02

2020-09-21

2020-09-25

2019-09-30

2019-10-04

2020-10-02

2020-10-01

2020-10-02

2020-09-01

2020-09-02

2019-10-01

2019-10-02

有了以上时间范围表,我们需要做的则是将业务数据根据不同的时间范围打宽,并且根据需求汇总。举实际栗子说明,我们有以下数据,需要汇总统计本周以及本月的累计数量。业务数据S表如下:

业务时间

业务编号

数量

2020-09-28

0000092201

50

2020-10-01

0000100101

100

2020-10-01

0000100102

200

2020-10-02

0000100201

80

2020-10-02

0000100202

60

……

……

……

……

……

……

结合统计时间范围R表,我们可方便的统计当前周期、环比和同比的累计数量,当前周期累计数量参考以下脚本,环比和同比累计数量可类似统计。

Select R.统计时间,
R.类型,
SUM(S.数量) AS 当前周期数量
FROM R LEFT JOIN S ON 1=1
Where R.统计时间=今日 
AND S.业务时间 between R.当前周期开始时间 to R.当前周期结束时间 
GROUP BY R.统计时间,R.类型

数据统计完成后的下一步是呈现。在实际应用中,数据会达到亿级,为了提高读取性能,减少库表的关联聚合等操作,我们可将数据按如下库表设计存储,从实际应用场景统计,可满足90%以上的数据展示需求。

统计时间

类型

当前周期数据

环比周期数量

同比周期数量

2020-10-02

 

 

 

2020-10-02

 

 

 

回顾一下,以上描述的环比和同比数据统计思路,我们首先为批量业务数据打上相应的标记位,接着根据标志位做需求维度的汇总计算,最后按照大宽表的格式存储统计结果。数据标志位的思想,在一定程度上简化了数据统计思路,优雅的解决日常一些数据统计问题。

作者:江沛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值