累计计算

对于数仓而言,我们一般都是增量计算,增量数据同步、增量数据计算,然后我们产出每天的指标,大多数情况下都是这样的,但是我们也有很多的指标需要把过去的数据和当前的数据进行累计,从而产出计算结果。

接下来我们分析一下常用的累计计算,然后关注一下如何去从中抽出一个通用的计算模型

数据准备/需求分析

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<

数仓工具—Hive实战之累计计算(7)相关推荐

  1. 数仓工具—Hive实战之UDF汉字首字母(22)

    UDF 汉字首字母 今天这个业务背景其实很简单,就是公司有很多品牌,我们要提取每个名牌的第一个汉字的首字母,例如"宝马"就是 B , 然后"福特" 就是F,&q ...

  2. 数仓工具—Hive实战之full join 经典案例(13)

    full join 经典案例 full join 增量数据同步更新 我们知道我们的数仓数据很大一部分是来自业务数据库的,那么这个时候我们数据同步的方式有两种一种是增量同步一种是全量同步,那么这个时候我 ...

  3. 数仓工具—Hive实战之对比分析(15)

    对比分析 对比分析法是指将两个或两个以上的数据进行比较,分析它们的差异,从而揭示这些数据所代表的事物发展变化情况和规律性,当然最终的目的 .它可以非常直观地看出事物某方面的变化或差距,并且可以准确.量 ...

  4. 数仓工具—Hive实战之滑动/滚动时间窗口计算(19)

    时间滑动计算 今天遇到一个需求大致是这样的,我们有一个业务涉及到用户打卡,用户可以一天多次打卡,我们希望计算出7天内打卡8次以上,且打卡时间分布在4天以上的时间,当然这只是个例子,我们具体解释一下这个 ...

  5. 数仓工具—Hive实战之自关联经典案例(11)

    自关联经典案例 其实说到关联我相信很多人都知道,自关联其实是关联的一种,其实我们最常见的是两张不同的表之间的关联,但其实工作中我们能看到的其实还有一种关联,那就是一张表与它自己关联. 下面我们就通过几 ...

  6. 数仓工具—Hive实战之占比同比环比(10)

    同比环比的计算 测试数据 1,2020-04-20,420 2,2020-04-04,800 3,2020-03-28,500 4,2020-03-13,100 5,2020-02-27,300 6, ...

  7. 数仓工具—Hive实战之日活跃周活跃月活(12)

    日活跃周活跃月活 日活的定义非常简单,就是今日活跃的用户数,因为定义很简答,所以逻辑很简单,因此它的计算也非常简单.虽然简单,但是它却是我们的业务上非常重要的一个计算指标 日活会受到很多因素的影响,产 ...

  8. 数仓工具—Hive实战之 UDF GIS(16)

    UDF GIS 什么是GIS GIS,全称Geographic Information System(地理信息系统), 也称为Geographic Information Science,即地理信息科 ...

  9. 数仓工具—Hive实战之拉链表(3)

    拉链表初识 需要查看历史某一时间节点的状态,同时考虑到存储空间:或则适用于数据会发生变化,但是大部分是不变的 在数据仓库的数据模型设计过程中,经常会遇到下面这种表的设计: 有一些表的数据量很大,比如一 ...

最新文章

  1. 配置zendframework开始工作(加入环境变量)
  2. 【错误记录】执行 Python 程序报错 ( NameError: name ‘reload‘ is not defined )
  3. Springcloud配置中心客户端启动时Could not resolve placeholder ‘version‘ in value “${version}“报错原因
  4. java程序设计复习题_java程序设计复习大全(100题及答案).doc
  5. C++程序员笔试复习概要(一)
  6. Alwayson--问题总结二
  7. Spring Cloud Feign注意点
  8. ubantu 中配置Flash Player
  9. Windows平台下使用Active Directory对Subversion进行权限控制(非完美解决方案)
  10. python使用高阶函数实现_18.python高阶函数
  11. (23)npm项目发布
  12. android_ndk_build_flags 配置,Android studio配置NDK问题小结
  13. NoClassDefFoundError: javax/xml/bind/JAXBException-springboot
  14. 各种模糊控制算法案例word+程序+建模过程
  15. 国标视频云服务平台EasyGBS出现只能通过录像机观看的情况该如何解决?
  16. Segment routing分段路由
  17. GB28181系列笔记-语音对讲功能
  18. 幂律分布(python)
  19. 智能工厂需要哪些条件和技术?
  20. vc idispatchimpl 怎么实例化_京东APP订单业务楼层化技术实践解密

热门文章

  1. 讨论一下CQS (命令-查询 分离)原则
  2. 什么牌子速冻水饺好吃
  3. 机器人机器学习环境框架搭建—从ubuntu到mujoco仿真实现(第一篇):ubuntu18.04的安装
  4. 锐文科技智能网卡OVS OFFLOAD技术白皮书
  5. python的image用法_python PIL.Image使用
  6. 张小龙不是广东人 | 小林和腾讯不得不说的故事(五)
  7. layui confirm 取消事件
  8. 中创教育带你了解培训机构投诉退费纠纷增多原因
  9. openwrt信号弱掉线_openwrt路由器宽带频繁掉线解决方案
  10. weblogic修改banner_WEBLogic默认账号弱口令及利用方法.doc