累计计算
对于数仓而言,我们一般都是增量计算,增量数据同步、增量数据计算,然后我们产出每天的指标,大多数情况下都是这样的,但是我们也有很多的指标需要把过去的数据和当前的数据进行累计,从而产出计算结果。
接下来我们分析一下常用的累计计算,然后关注一下如何去从中抽出一个通用的计算模型
数据准备/需求分析
day open_cnt click_cnt
+----+---------+--------+
2021-06-10 100 50
2021-06-11 120 60
2021-06-12 150 50
这里我们就模拟了两个指标 open_cnt 打开次数,click_cnt 点击次数,这里的指标是按照天计算的,也就是说我们每天都计算打开次数和点击次数,下面是模拟数据的SQL
with daily_index as(
select
'2021-06-10' as day,100 as open_cnt,50 as click_cnt
union all
select
'2021-06-11' as day,120 as open_cnt,60 as click_cnt
union all
select
'2021-06-12' as day,150 as open_cnt,50 as click_cnt
)
select * from daily_index;
现在我们的需求变了,我们还需要计算出截止到当前的累计值,累计打开次数和累计打开人数
需求很明确,接下来我们分析一下怎么做
day | open_cnt | click_cnt | total_open_cnt< |
---|