mysql 查询 系统字段 自然日_Mysql查询用户留存/留存率问题用户n日(内)留存、某日新增用户n日(内)留存...
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日(内)留存...相关推荐
- mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...
本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...
- excel制作录入和查询系统_excel表格制作成绩查询系统攻略:让学生隐私更安全!
对于班主任来说,无论是收集学生信息,还是发布考试成绩,用得最多的就是excel表格了!很多老师在发布成绩的时候,多半会把统计好的表格直接发到群里让学生自行查询,这样一来虽然省事,但却极易招到投诉!下面 ...
- 【mybatis】mybatis自定义动态字段查询,mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段...
mybatis实现动态字段查询,如果某个条件为null,则不查询某个字段,否则就查询某个字段 先看一下 怎么实现动态的自定义字段查询: 例如: 而field 就是数据表中的某一个字段 String f ...
- 计算某日新增用户,及其次日、3日、3日内的留存率
计算某日新增用户,及其次日.3日及其3日内的留存率 user_id 用户 dt 时间 login 表名 select login_day,count(distinct t.user_id) as uv ...
- mysql为表和字段取别名_MySQL查询函数---为表和字段取别名
(1)为表取别名 (2)为字段取别名 (1)为表取别名 当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替原来的名称.为表取别名的基本语法格式 ...
- mysql查询特定时间数据视频_mysql查询特定时间段内的数据
参照文章(mysql查询时间段内数据)进行了操作. 先来建表语句: [sql] view plaincopySETFOREIGN_KEY_CHECKS=0;-- ------------------- ...
- mysql查阅某个日期的语句_mysql查询指定日期时间内的sql语句及原理
查询指定日期时间内的sql语句的实现原理: 如果是月份就是当前的月减去你要统计的时间,比如要查询数据库中从今天起往前三个月的所有记录. 另外,在数据库设计阶段,要注意时间字段为int(11),保存在数 ...
- mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能
查询日志的作用是记录所有客户端发来的sql语句,也就是记录客户端的所有操作 Log参数将要过时,现在用general_log来代替 打开查询日志功能 mysql> showvariables l ...
- mysql select 查询选后5个_mysql 查询select语句汇总
数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar( ...
最新文章
- MySQL图形处理软件Navicat字体配置(乱码解决)
- STL中的map、unordered_map、hash_map
- 学长的求职经验 记录【就业创业信息网、求职流程、求职小细节】
- C++学习笔记:(五)继承 多态
- 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
- 如何在 C# 8 中使用 模式匹配
- 根据后序和中序求二叉树的层序
- Flash3D的X,Y,Z坐标系调试小工具
- 基于JAVA+SpringMVC+Mybatis+MYSQL的水果蔬菜商城管理系统
- 华为面向全球发布HMS Core 4.0意味着什么?
- count(*),count(1)和count(字段)的区别
- bat脚本 时间处理 获取时间差
- php pdf压缩工具,在线压缩PDF文件的工具
- android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference
- Sublime Text 比较2个文件不同
- 拉丁字母表及中英文发音
- 歌曲剪辑软件测试自学,想做vlog?想剪视频?全网最良心的视频剪辑软件测评之入门篇...
- 日志级别的选择:Debug、Info、Warn、Error还是Fatal
- 汇率实时行情查询接口
- Unity3D优化:分场景烘焙,综合场景加载