如何分析用户复购行为?
【面试题】某公司数据库里有3张表,销售订单表、产品明细表、销售网点表
”销售订单表”记录了销售情况,每一张数据表示哪位顾客、在哪一天、哪个网点购买了什么产品,购买的数量是多少,以及对应产品的零售价
“产品明细表”记录了公司产品的详细信息
“销售网点表”记录了公司的销售网点
销售订单表、产品明细表、销售网点表字段之间的关系如下
销售订单表和产品明细表通过“产品”字段关联,销售订单表和销售网点通过“交易网点”关联
【问题】分析品牌在2019.5-2020.4期间的复购率
【解题思路】
1.明确业务指标
要分析的是“在2019.5-2020.4期间的复购率”,复购率是业务分析中经常用到的指标。
复购率是衡量产品受欢迎度的指标。复购率高,说明产品的忠诚用户越多,这时公司需要把更多的精力和资源投入到吸引、引导在用户的复购上。
复购率低说明产品的忠诚用户少,需要把资源和精力用在提升用户的转化率上。
复购率 =一定时间内购买次数大于1次的人数/所有购买的用户数
举个例子,3月份购买产品的100个人中有30个人购买了2次。3月份的总的复购人数为30人,复购率=一定时间内购买次数大于1次的人数(30)/所有购买的用户数(100)=30%
2.如何判断是否是复购呢?
不同的行业有不同的标准,一般是指发货了再购买的才算复购,同一天购买的不算是复购。
也就是日期不同的,再次购买的用户算是复购。
在“销售订单表”中,需要先用if函数判断用户(顾客ID字段)购买次数,大于1的为复购,标记为1,否则标记为0
if(count(distinct (a.顾客ID))>1,1,0)
然后再用汇总函数(count)计数
count(distinct(a.顾客ID))
这样,复购率 =一定时间内购买次数大于1次的人数/所有购买的用户数
if(count(distinct (a.顾客ID))>1,1,0)/count(distinct(a.顾客ID)) as 复购率
3.不同日期的复购
一般按不同日期的购买为复购,需要把“销售订单表”复制为2个表,用不同的日期取交集,取出不同日期购买的顾客/次数,如下图
from 销售订单表 as a
inner join 销售订单表 as b
on a.交易日期!=b.交易日期
把前面步骤里的SQL组合到一起,最终得到分析复购率的SQL:
select if(count(distinct (a.顾客ID))>1,1,0)/count(distinct(a.顾客ID)) as 复购率
from 销售订单表 as a
inner join 销售订单表 as b
on a.交易日期!=b.交易日期
and a.交易日期 between "2019-05-01" and "2020-04-30";
得到复购率=0.2=20%
【本题考点】
1.此题重点查看对业务的理解,必须先清楚业务的指标的含义。常用的指标可以回顾《衡量业务:指标体系》
2.考察if判断函数的应用
3.内联结inner join的应用
推荐:如何从零学会SQL?
如何分析用户复购行为?相关推荐
- SQL如何分析用户复购?(复购率、表连接)
[题目] 表名为"购买记录表"里记录某在线教育平台的用户购买记录,包含字段:用户id.购买时间.课程类型.消费金额. 问题:分析出每日首次购买用户的次月.第三月.第四月复购情况如何 ...
- 用户复购行为,该如何分析
"1个老用户比20个新用户更有价值"是很多运营挂在嘴边的理论.可一到真刀真枪做数据分析的时候,又变成了让人头大的问题:"复购行为咋分析!" 就算计算出复购率指标 ...
- 【数据分析案例】pandas + matplotlib 人货场+RFM+用户复购分析 电商水果销售
使用python中的pandas和matplotlib简单实现描述性分析,因为数据为随机生产数据,因此该案例更多的是体现分析思路以及过程实现 导入相关库 import matplotlib.pyplo ...
- 神策 FM:Airbnb 如何通过用户体验预测用户复购?
大家好,我是策小编,一年过去,我们好久不见!本期我们为大家带来一个数据分析案例--Airbnb 如何通过用户体验预测用户复购?根据 Airbnb 数据科学家 Lisa Qian 的文章改编而来. 如果 ...
- 9.1 电商B2C商铺新用户复购预测
电商B2C商铺新用户复购预测 1. 电商B2C模式介绍 1.1 电商主要业务模式 B2B C2C B2C 1.2 B2C主要业务功能 平台盈利模式 1.3 商家数据分析师日常 1.3.1 日报周报(数 ...
- 工作问题:SQL求解用户复购率
SQL求解用户复购率 1.说说问题 2.解决方案 3.附加需求:求每个月总体的复购率 4.附录:输入数据结构及数据SQL 也可在 微信公众号 上观看 1.说说问题 遇到了一个问题:给定一个订单表,里面 ...
- 【BI学习作业13-淘宝定向广告演化与天猫用户复购预测】
目录 写在前面的话 1.思考题 1.1电商定向广告和搜索广告有怎样的区别,算法模型是否有差别 1.1.1电商定向广告 1.1.2搜索广告 1.2定向广告都有哪些常见的使用模型,包括Attention机 ...
- 如何用SQL统计用户复购(or留存)数据
在工作中,如果涉及到用户交易的数据,我们可能会经常统计每天的新户(用户在当日首次完成交易)交易用户数.新户在次日.T+n日.次周.下下周.在自然月当月.在下月.在下下月等不同的时间周期内的复购数据. ...
- 如何提升用户复购?这7个「不容错过」的营销策略请收好
我们做营销的经常会遇到一个经典的问题: 为什么用户买了一次后,就再也没见到他来了? 这是我们常见的复购率低的问题,也就是俗称的回头客少. 那为什么复购率低呢? 可能是广告做的不好,导致用户忘记了你的产 ...
最新文章
- svn冲突的解决办法
- 用ajax控件作的高级搜索
- pythongoogle.probuf.timestamp_数据通信格式:Google Protobuf
- 电路基础知识 -- 数模信号
- 找不到using System.Web.Script.Services 的问题
- dlopen linux 实例_Linux静态库和动态库
- git 常用命令(含删除文件)
- 经典算法大全之河内之塔
- 离散数学反对称关系_离散数学课程总结(4)
- confluence统计_【漏洞预警】confluence远程代码执行漏洞(CVE-2019-3396)
- Java-数据库连接池第一篇
- iptables -F 后断开连接
- 全球顶尖互联网公司谷歌都在使用的Mono-Repo单体仓库
- RAID磁盘阵列与阵列卡 2022.6.5
- 朱利亚 matlab分形图,【分形之美 02】分形图像怎么画?详解曼德勃罗朱利亚分形绘制方法...
- MySQL 怎么插入10天前的日期_Mysql笔记
- python excel表格去重_都说Excel大法好,Python大法其实也不错,批量去重处理更是神啊...
- Invalid bound statement (not found): org.seckill.dao.Suc
- 专访:6位飞桨开发者的「新生代」AI创新故事!
- php织梦cms 安装教程,Linux服务器上安装织梦CMS,linux服务器织梦cms_PHP教程