Mysql查询用户留存/留存率语法

  • 计算某日的客户在第n日再次出现的概率--用户n日留存率。
  • 计算某日的客户在某个时间段内再次出现的概率--用户n日内留存率。
  • 计算某日新增的用户在第n日再次出现的概率--新用户n日留存率。
  • 计算某日新增的用户在某个时间段内再次出现的概率--新用户n日内留存率。

1.用户n日留存/留存率

计算某日的客户在第n日再次出现的概率--用户n日留存率。

  • 表名:订单总表;字段:客户编号,下单时间
-- 1.用户n日留存/留存率-- 用户次日、3日、7日、30日,...留存/留存率

select *, concat(round(100*次日留存用户/日活跃用户数,2),'%')  次日留存率, concat(round(100*三日留存用户/日活跃用户数,2),'%')  三日留存率, concat(round(100*七日留存用户/日活跃用户数,2),'%')  七日留存率from ( select   date(a.下单时间) as 日期,  count(distinct a.客户编号) as 日活跃用户数,  count(distinct b.客户编号) as 次日留存用户,  count(distinct c.客户编号) as 三日留存用户,  count(distinct d.客户编号) as 七日留存用户 from 订单总表 a   left join 订单总表 b    on a.客户编号 = b.客户编号    and date(b.下单时间) = date(a.下单时间) + 1  left join 订单总表 c    on a.客户编号 = c.客户编号    and date(c.下单时间) = date(a.下单时间) + 3  left join 订单总表 d    on a.客户编号 = d.客户编号    and date(d.下单时间) = date(a.下单时间) + 7 where date(a.下单时间) between "2020/09/01" and "2020/09/05"  group by date(a.下单时间)) p;

2.用户n日内留存/留存率

计算某日的客户在某个时间段内再次出现的概率--用户n日内留存率。

-- 2.用户n日内留存/留存率-- 用户次日内、3日内、7日内、30日内,...留存/留存率

select *, concat(round(100*次日内留存用户/日活跃用户数,2),'%')  次日内留存率, concat(round(100*三日内留存用户/日活跃用户数,2),'%')  三日内留存率, concat(round(100*七日内留存用户/日活跃用户数,2),'%')  七日内留存率from ( select   date(a.下单时间) as 日期,  count(distinct a.客户编号) as 日活跃用户数,  count(distinct b.客户编号) as 次日内留存用户,  count(distinct c.客户编号) as 三日内留存用户,  count(distinct d.客户编号) as 七日内留存用户 from 订单总表 a   left join 订单总表 b    on a.客户编号 = b.客户编号    and date(b.下单时间) = date(a.下单时间) + 1  left join 订单总表 c    on a.客户编号 = c.客户编号    and (date(c.下单时间) BETWEEN date(a.下单时间) + 1 AND date(a.下单时间) + 3)  left join 订单总表 d    on a.客户编号 = d.客户编号    and (date(d.下单时间) BETWEEN date(a.下单时间) + 1 AND date(a.下单时间) + 7) where date(a.下单时间) between "2020/09/01" and "2020/09/05"  group by date(a.下单时间)) p;

3.新增用户n日留存/留存率

计算某日新增的用户在第n日再次出现的概率--新用户n日留存率。

## 3.某日新增用户留存/留存率## 计算某日新增的用户在次日、3日、7日的留存率--新用户n日留存

select *, concat(round(100*次日留存用户/日新增用户数,2),'%')  次日留存率, concat(round(100*三日留存用户/日新增用户数,2),'%')  三日留存率, concat(round(100*七日留存用户/日新增用户数,2),'%')  七日留存率from ( select   date(a.下单时间) as 新增日期,  count(distinct a.客户编号) as 日新增用户数,  count(distinct b.客户编号) as 次日留存用户,  count(distinct c.客户编号) as 三日留存用户,  count(distinct d.客户编号) as 七日留存用户 from  (  select     date(t1.下单时间) as 下单时间,   t1.客户编号   from 订单总表 as t1   left join 订单总表 as t2   on t1.客户编号=t2.客户编号   and t2.下单时间  where    (date(t1.下单时间) between "2020/09/01" and "2020/09/05")   and t2.下单时间 is Null   ) as a   left join 订单总表 b    on a.客户编号 = b.客户编号    and date(b.下单时间) = date(a.下单时间) + 1  left join 订单总表 c    on a.客户编号 = c.客户编号    and date(c.下单时间) = date(a.下单时间) + 3  left join 订单总表 d    on a.客户编号 = d.客户编号    and date(d.下单时间) = date(a.下单时间) + 7 group by date(a.下单时间)) p;

4.新增用户n日内留存率

计算某日新增的用户在次日内、3日内、7日内的留存率--新用户n日内留存率。

## 4.新增用户n日内留存率## 计算某日新增的用户在次日内、3日内、7日内的留存率--新用户n日内留存率。select *, concat(round(100*次日留存用户/日新增用户数,2),'%')  次日留存率, concat(round(100*三日留存用户/日新增用户数,2),'%')  三日留存率, concat(round(100*七日留存用户/日新增用户数,2),'%')  七日留存率from ( select   date(a.下单时间) as 新增日期,  count(distinct a.客户编号) as 日新增用户数,  count(distinct b.客户编号) as 次日留存用户,  count(distinct c.客户编号) as 三日留存用户,  count(distinct d.客户编号) as 七日留存用户 from  (  select     date(t1.下单时间) as 下单时间,   t1.客户编号   from 订单总表 as t1   left join 订单总表 as t2   on t1.客户编号=t2.客户编号   and t2.下单时间  where    (date(t1.下单时间) between "2020/09/01" and "2020/09/05")   and t2.下单时间 is Null   ) as a   left join 订单总表 b    on a.客户编号 = b.客户编号    and date(b.下单时间) = date(a.下单时间) + 1  left join 订单总表 c    on a.客户编号 = c.客户编号    and (date(c.下单时间) BETWEEN date(a.下单时间) + 1 AND date(a.下单时间) + 3)  left join 订单总表 d    on a.客户编号 = d.客户编号    and (date(d.下单时间) BETWEEN date(a.下单时间) + 1 AND date(a.下单时间) + 7) group by date(a.下单时间)) p;

扫码关注更多数据分析与运营知识干货在此,随时学习!、

mysql 查询 系统字段 自然日_Mysql查询用户留存/留存率问题用户n日(内)留存、某日新增用户n日(内)留存...相关推荐

  1. mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...

    本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...

  2. excel制作录入和查询系统_excel表格制作成绩查询系统攻略:让学生隐私更安全!

    对于班主任来说,无论是收集学生信息,还是发布考试成绩,用得最多的就是excel表格了!很多老师在发布成绩的时候,多半会把统计好的表格直接发到群里让学生自行查询,这样一来虽然省事,但却极易招到投诉!下面 ...

  3. 【mybatis】mybatis自定义动态字段查询,mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段...

    mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段 先看一下 怎么实现动态的自定义字段查询: 例如: 而field 就是数据表中的某一个字段 String f ...

  4. 计算某日新增用户,及其次日、3日、3日内的留存率

    计算某日新增用户,及其次日.3日及其3日内的留存率 user_id 用户 dt 时间 login 表名 select login_day,count(distinct t.user_id) as uv ...

  5. mysql为表和字段取别名_MySQL查询函数---为表和字段取别名

    (1)为表取别名 (2)为字段取别名 (1)为表取别名 当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替原来的名称.为表取别名的基本语法格式 ...

  6. mysql查询特定时间数据视频_mysql查询特定时间段内的数据

    参照文章(mysql查询时间段内数据)进行了操作. 先来建表语句: [sql] view plaincopySETFOREIGN_KEY_CHECKS=0;-- ------------------- ...

  7. mysql查阅某个日期的语句_mysql查询指定日期时间内的sql语句及原理

    查询指定日期时间内的sql语句的实现原理: 如果是月份就是当前的月减去你要统计的时间,比如要查询数据库中从今天起往前三个月的所有记录. 另外,在数据库设计阶段,要注意时间字段为int(11),保存在数 ...

  8. mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能

    查询日志的作用是记录所有客户端发来的sql语句,也就是记录客户端的所有操作 Log参数将要过时,现在用general_log来代替 打开查询日志功能 mysql> showvariables l ...

  9. mysql select 查询选后5个_mysql 查询select语句汇总

    数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar( ...

最新文章

  1. MySQL图形处理软件Navicat字体配置(乱码解决)
  2. STL中的map、unordered_map、hash_map
  3. 学长的求职经验 记录【就业创业信息网、求职流程、求职小细节】
  4. C++学习笔记:(五)继承 多态
  5. 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
  6. 如何在 C# 8 中使用 模式匹配
  7. 根据后序和中序求二叉树的层序
  8. Flash3D的X,Y,Z坐标系调试小工具
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的水果蔬菜商城管理系统
  10. 华为面向全球发布HMS Core 4.0意味着什么?
  11. count(*),count(1)和count(字段)的区别
  12. bat脚本 时间处理 获取时间差
  13. php pdf压缩工具,在线压缩PDF文件的工具
  14. android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference
  15. Sublime Text 比较2个文件不同
  16. 拉丁字母表及中英文发音
  17. 歌曲剪辑软件测试自学,想做vlog?想剪视频?全网最良心的视频剪辑软件测评之入门篇...
  18. 日志级别的选择:Debug、Info、Warn、Error还是Fatal
  19. 汇率实时行情查询接口
  20. Unity3D优化:分场景烘焙,综合场景加载

热门文章

  1. Java命令行界面(第30部分):观察
  2. 弹簧和线程:TaskExecutor
  3. 新CalendarFX视图:MonthGridView!
  4. Java EE 8 MVC:使用路径参数
  5. 休眠:在sqlRestriction上使用联接表别名
  6. 使用jOOQ DSL
  7. JavaFX中的塔防(4)
  8. Java监视器绑定的超人
  9. Spring Social入门
  10. Hadoop模式介绍-独立,伪分布式,分布式