1.项目需求(计算复购率)
订单表中有用户ID、订单金额、每笔订单的下单时间等信息,需要统计每个月在接下来几个月用户复购情况

// 创建数据表
create table orders(
order_id int primary key,
user_id int,
amount int,
create_time datetime
);
// 插入数据
insert into orders values
(101,11211,749.00,'2021-05-06 00:04:00'),
(102,75205,939.00,'2021-05-08 09:13:00'),
(103,81384,349.00,'2021-05-09 22:18:00'),
(104,50437,687.00,'2021-05-19 22:20:00'),
(105,30321,658.00,'2021-05-19 21:20:00'),
(106,49811,355.00,'2021-05-20 21:20:00'),
(107,30352,363.00,'2021-05-19 21:56:00'),
(108,30362,435.00,'2021-05-26 23:45:00'),
(109,30363,270.00,'2021-05-27 10:16:00'),
(110,30324,552.00,'2021-05-30 15:28:00'),
(111,11211,692.00,'2021-05-08 16:34:00'),
(112,75205,536.00,'2021-06-09 17:38:00'),
(113,81384,478.00,'2021-06-13 21:36:00'),
(114,30362,675.00,'2021-06-16 23:29:00'),
(115,30363,723.00,'2021-06-20 11:42:00'),
(116,30324,914.00,'2021-06-21 11:42:00'),
(117,49262,1110.00,'2021-06-24 20:32:00'),
(118,12074,617.00,'2021-06-29 21:12:00'),
(119,50437,911.00,'2021-07-02 16:36:00'),
(120,30321,695.00,'2021-07-14 22:56:00'),
(121,12074,275.00,'2021-07-15 18:37:00'),
(122,81384,1066.00,'2021-07-18 17:39:00'),
(123,30362,958.00,'2021-07-23 11:30:00'),
(124,27727,687.00,'2021-07-25 16:38:00'),
(125,27727,858.00,'2021-07-28 15:20:00'),
(126,75205,1120.00,'2021-07-28 15:20:00'),
(127,30324,618.00,'2021-08-13 15:20:00'),
(128,30362,958.00,'2021-08-16 11:30:00'),
(129,27727,323.00,'2021-08-22 16:38:00'),
(130,30362,558.00,'2021-08-26 17:20:00'),
(131,75205,1120.00,'2021-08-28 19:26:00'),
(132,27727,858.00,'2021-08-28 15:20:00');

目标分解
1.首先统计每个月下单的用户数

SELECT MONTH( create_time ) as 月份,user_id
FROMorders
GROUP BYyuefen,user_id;

2.将每个月下单的用户数表自连接判断是否复购,同时计算复购人数

SELECT a.月份 as 购买月份,
b.月份 as 复购月,
COUNT(distinct(b.user_id)) as 复购人数
from
(SELECT MONTH( create_time ) as 月份,user_id
FROMorders
GROUP BY月份,user_id) a
join
(SELECT MONTH( create_time ) as 月份,user_id
FROMorders
GROUP BY月份,user_id
) b
on a.user_id = b.user_id and a.月份< b.月份
GROUP BY
a.月份,b.月份

3.统计每个月总用户下单数

SELECT MONTH( create_time ) as 月份,COUNT( distinct ( user_id ) ) 总用户数
fromorders
GROUP BY月份;

4.计算复购率,复购人数/总用户下单数

select 购买月份,复购月,复购人数,总用户数,CONCAT(ROUND(复购人数/总用户数,2) *100,'%') as 复购率
FROM
(SELECT a.月份 as 购买月份,b.月份 as 复购月,COUNT(distinct(b.user_id)) as 复购人数
from
(SELECT MONTH( create_time ) as 月份,user_id
FROMorders
GROUP BY月份,user_id) a
join
(SELECT MONTH( create_time ) as 月份,user_id
FROMorders
GROUP BY月份,user_id
) b
on a.user_id = b.user_id and a.月份< b.月份
GROUP BY
a.月份,b.月份
) fg
join
(SELECT MONTH( create_time ) as 月份,COUNT( distinct ( user_id ) ) 总用户数
fromorders
GROUP BY月份
) zr
on fg.购买月份 = zr.月份

MySQL中用户订单复购率的计算相关推荐

  1. hive练习题(二)计算用户的复购率和回购率

    hive练习题(二)计算用户的复购率和回购率 数据表ods_sales_orders前10行 复购率 定义:在某时间窗口内重复消费用户(消费两次及以上的用户)在总消费用户中占比 例如,按月作为统计窗口 ...

  2. Pandas数据分析实战 — 复购率指标计算

    一.指标定义   在单位时间窗口内,多次(2次及以上)消费的用户在总消费用户的占比. 二.计算方法 ①按人数计算   所有购买过产品的顾客,以每个人为独立单位重复购买产品的次数,比如有10个客户购买了 ...

  3. MySQL 留存率和复购率的场景分析

    实际工作中常见的业务场景是求次日留存率,还有一些会对次日留存率增加限制,例如求新用户的次日留存率或者求活跃用户留存率.另外,留存率和复购率看起来都是统计重复出现的概率,但实际求解方法是不一样的. [场 ...

  4. 哪个是更早的时间 date_淘宝用户行为分析(漏斗模型+pv,uv,pv/uv,复购率,用户活跃时间段)...

    数据来源https://tianchi.aliyun.com/dataset/dataDetail?dataId=46 用户行为表:用户ID,商品ID,用户行为.用户地点,商品大类ID,时间 需求:该 ...

  5. mysql复购率_MySQL_复购回购率

    指标解释 如何计算复购率/回购率 计算方法一:复购的人 复购率 = 单位时间内购买次数大于1的人/所有购买的人 例如: 一段时间内,10个人中有3个人购买2次,这3个人中有一个人又购买了一次,累计复购 ...

  6. sql复购率计算多种方法

    注:这个复购率算的更加细致,比其他的算法更加精妙,能看懂的不多,好好体会! 说明:这是一个订单的复购率,计算的时候单独提取了n天复购的用户明细 关键sql说明: D:取得用户下的第一单订单的时间,以及 ...

  7. 成都榆熙:复购率是什么?商家可以提升吗?

    很多商家随着拼多多店铺的发展,也开始意识到用户复购率的重要性,越来越多的商家开始想要提升店铺复购率,那么关于复购率这个东西,你又知道多少呢?一起和榆熙电商小编来了解一下吧. 一.什么是复购率? &qu ...

  8. mysql求回购率_用户行为分析——回购率、复购率(SQL、Python求解)

    有一个多月没有用Python了,有些生疏o(╥﹏╥)o.通过秦路老师的一道题目,分别使用sql和python求解,顺便复习下python点,重点关注[复购率].[回购率]的解法 ☞秦路老师视频讲解(使 ...

  9. mysql求回购率_SQL-- 用户行为(复购率、回购率等)

    所需数据:ORDER_INFO_UTF.CSV.USER_INFO_UTF.CSV 提取码:yu63 我的数据库版本是Mysql 8.0 本文章参考 秦路老师七周成为数据分析师 的视频,和视频中讲解的 ...

最新文章

  1. 【直播】李祖贤:集成学习答疑直播之五 -- 常用集成思路
  2. 皮一皮:这是什么鬼畜产品!
  3. Linux环境搭建 | 手把手教你配置Linux虚拟机
  4. Vagrant安装centos7时一直报错无法保存文件
  5. ubuntu下创建图标
  6. FTP服务器配置与管理(4) 服务器端的常用配置及FTP命令
  7. 小动画制作 图片盒子配合定时器 winform 114869633
  8. 时评:别让智能设备成为网络安全的“蚁穴”
  9. android sqlite 添加多个表,Android的 - 导入多个.CSV文件在SQLite数据库的多个表(Android - Impo...
  10. 随想录(zynq学习)
  11. WOW工会DKP管理系统
  12. mnist数据集下载地址
  13. 程序设计实践-21点赌博游戏
  14. win10+tensorflow-gpu+1050ti(终于安装成功了T﹏T)
  15. deepin回收站无法清空
  16. 用python wxpy管理微信公众号,并利用微信获取自己的开源数据。
  17. 《互联网周刊》封面报道:P2P——新媒体革命
  18. 令人激动的语音UI背后
  19. flash as3.0 图片切换
  20. 普通SSD大量拷贝数据速度变慢?

热门文章

  1. 穿越时空的爱恋-Z80 CPU的前世今生
  2. stable diffusion制作韩国版AI女友关键词
  3. 2021年C证(安全员)复审模拟考试及C证(安全员)作业模拟考试
  4. Python爬取多网页表格数据(非table)
  5. Verilog 实现千兆网UDP协议 基于88E1111--板级验证--增加ARP
  6. 为JBoot系统增加启动任务
  7. H5外部浏览器唤起微信分享
  8. BMP图片加马赛克C语言C++超简单
  9. 学习了pr后的收获_Pr实训报告心得体会
  10. 介绍一个开源博客项目并部署到Nginx服务器