留存率是衡量用户质量的最重要指标之一,因此计算用户留存率是用户数据分析中必须掌握的技能之一。

留存率指标中,通常需要关注次日留存、3日留存、7日留存和月留存。对新增用户而言,需要关注更细颗粒度的数据,也就是7日内每天的留存率。

7日内每天的留存率,最笨的方式是一天一天计算,如:

select count(distinct user_id)

from table

where date = ‘2019-12-01’

and user_id in

(select distinct user_id

from table

where date = ‘2019-12-02’)

group by date

这样,计算7日内每天的留存率,需要查询7次,子查询中日期需要更改7次。有没有用一个程序计算出7日内每天留存率的方法呢?

答案当然是‘Yes’,只需要计算日期与初始日期的间隔gap,然后根gap group by就可以了。

假设有两张表:新增用户表table_new_users,活跃用户表table_active_users,查询2019-12-01日的新增用户在7日内的留存率。

下面我们分步骤展示程序写法,每个步骤中的代码包含了前一步骤的代码。

  1. 确定date之间的天数间隔gap

  2. 计算每天留存的用户数retention_num

  3. 计算7日内留存率

查询结果形式如下:

一个SQL程序搞定7日内留存率计算比一天一天计算的查询要快多了,尤其是计算连续多天用户的留存率时,就更可以节省时间了(计算连续多天用户的留存率可以借助python)。

一个SQL,程序实现多日留存率计算相关推荐

  1. 编写一个JSP程序Jiecheng.jsp,计算整数的阶乘,并显示出结果。

    编写一个JSP程序Jiecheng.jsp,计算整数的阶乘,并显示出结果. 要求先声明计算阶乘的方法,再调用该方法,最后在页面上输出结果. 通过表单提交一个正整数,然后计算它的阶乘. 参考代码: ...

  2. 我的第一个MPI程序:利用矩形规则计算pi

    利用矩形规则计算pi #include<mpi.h> #include<iostream> using namespace std;   const int INTERVALS ...

  3. 我的第一个Java程序

    开始第一个Java程序 保证你的计算机上有一个文本编辑器 安装JDK[一般JDK在官网下载] JDK.JRE.JVM的关系 JDK目录的介绍 JDK/bin:该目录下存放了很多命令,例如javac.e ...

  4. sql里查询一个组和组的用户数怎么查?_【牛客网SQL刷题】留存率怎么算?

    抽空刷了牛客网SQL实战72题,最后几道以牛客网为例的题目还挺有挑战性,在此记录 统计时间段新用户次日留存率 每日的次日留存率 每日的新用户数 每日新用户的次日留存 求新登录用户次日留存 表login ...

  5. 两表左连接count某一字段_表连接解决多日留存率问题|SQL

    一.留存率的计算 留存率=新增用户中登录用户数/新增用户数*100% 第N日留存:指的是新增用户日之后的第N日依然登录的用户数/新增用户数*100% 二.数据集的理解 表[登录情况]中有字段[用户id ...

  6. .java编写一个梯形类lader_能够完成相关计算above为高_【Java】编写一个应用程序计算梯形和圆形的面积...

    说明:这是武汉理工大学计算机学院[Java语言程序设计]课程实验1:编写一个应用程序计算梯形和圆形的面积. 谨记:纸上得来终觉浅,绝知此事要躬行. Java语言程序设计--实验1:类的设计与对象使用 ...

  7. java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...

    问题标题 java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题.编写一个应用程序计算圆的周长和面积,设圆的半 2019-5-23来自ip:15.196.194.53的 ...

  8. 编写一个Python程序,计算任意圆锥体的体积和表面积。

    编写一个Python程序,计算任意圆锥体的体积和表面积. import math r=float(input("半径是")) h=float(input("高是" ...

  9. c语言计算二次函数顶点坐标,C语言编写一个求一元二次方程的实根的程序。 编辑一个小程序去做一元二次方程的求解(b^24ac)...

    导航:网站首页 > C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二次方程的求解(b^2>4ac) C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二 ...

最新文章

  1. Java动态加载一个类的几种方法以及invoke
  2. java 按钮 事件_Java 添加按钮点击事件
  3. 【多标签文本分类】Semantic-Unit-Based Dilated Convolution for Multi-Label Text Classification
  4. 构造代码块,初始代码块和静态代码块的执行顺序
  5. 韦世东:计划 35 岁「退休」的资深爬虫工程师
  6. python里实现DSL
  7. 用Go语言建立一个简单的区块链part7:网络
  8. eb8000软件怎样上传_百度网盘如何免费上传超过4G的文件?BitComet来帮你!
  9. 网页自动往下走html代码,网页自动跳转代码html
  10. leetcode 171. Excel表列序号
  11. android 中 四舍五入的method */
  12. php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
  13. Orleans 3.0 发布,微软下一代云计算编程模式
  14. 自然语言处理之 snownlp,分词、词性标注、情感分析、文本分类、提取关键词、文本相似度
  15. 掌握业务流程图符号,提高业绩不再没有头绪
  16. matlab输出工作区,matlab保存工作区数据
  17. win7计算机搜索文件搜不到,Win7搜不到文件如何解决?Win7搜不到文件的解决方法...
  18. 利用android实现汇率计算器,利用python编写一个汇率计算器
  19. python第三周测试_第三周作业 - 作业 - 信息与计算17数31SWE - 班级博客 - 博客园...
  20. SAP ABAP-获取屏幕字段数据

热门文章

  1. 汽车can网络分析仪汽车CAN
  2. 25.SwiftyJSON转换JSON的注意
  3. ThinkServer RD640 装系统
  4. /MTd /MD /MDd
  5. 淘宝top sdk java源码中的问题
  6. 搜索引擎网站收录地址大全
  7. MongoDB可视化工具(免费)—MongoDB Compass
  8. SourceTree 3.3.8 免注册 安装
  9. AS400相关资料整理(初学者)
  10. OpenMV固件升级(DFU)