【面试题】某公司数据库里有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?

如何分析用户复购行为?相关推荐

  1. SQL如何分析用户复购?(复购率、表连接)

    [题目] 表名为"购买记录表"里记录某在线教育平台的用户购买记录,包含字段:用户id.购买时间.课程类型.消费金额. 问题:分析出每日首次购买用户的次月.第三月.第四月复购情况如何 ...

  2. 用户复购行为,该如何分析

    "1个老用户比20个新用户更有价值"是很多运营挂在嘴边的理论.可一到真刀真枪做数据分析的时候,又变成了让人头大的问题:"复购行为咋分析!" 就算计算出复购率指标 ...

  3. 【数据分析案例】pandas + matplotlib 人货场+RFM+用户复购分析 电商水果销售

    使用python中的pandas和matplotlib简单实现描述性分析,因为数据为随机生产数据,因此该案例更多的是体现分析思路以及过程实现 导入相关库 import matplotlib.pyplo ...

  4. 神策 FM:Airbnb 如何通过用户体验预测用户复购?

    大家好,我是策小编,一年过去,我们好久不见!本期我们为大家带来一个数据分析案例--Airbnb 如何通过用户体验预测用户复购?根据 Airbnb 数据科学家 Lisa Qian 的文章改编而来. 如果 ...

  5. 9.1 电商B2C商铺新用户复购预测

    电商B2C商铺新用户复购预测 1. 电商B2C模式介绍 1.1 电商主要业务模式 B2B C2C B2C 1.2 B2C主要业务功能 平台盈利模式 1.3 商家数据分析师日常 1.3.1 日报周报(数 ...

  6. 工作问题:SQL求解用户复购率

    SQL求解用户复购率 1.说说问题 2.解决方案 3.附加需求:求每个月总体的复购率 4.附录:输入数据结构及数据SQL 也可在 微信公众号 上观看 1.说说问题 遇到了一个问题:给定一个订单表,里面 ...

  7. 【BI学习作业13-淘宝定向广告演化与天猫用户复购预测】

    目录 写在前面的话 1.思考题 1.1电商定向广告和搜索广告有怎样的区别,算法模型是否有差别 1.1.1电商定向广告 1.1.2搜索广告 1.2定向广告都有哪些常见的使用模型,包括Attention机 ...

  8. 如何用SQL统计用户复购(or留存)数据

    在工作中,如果涉及到用户交易的数据,我们可能会经常统计每天的新户(用户在当日首次完成交易)交易用户数.新户在次日.T+n日.次周.下下周.在自然月当月.在下月.在下下月等不同的时间周期内的复购数据. ...

  9. 如何提升用户复购?这7个「不容错过」的营销策略请收好

    我们做营销的经常会遇到一个经典的问题: 为什么用户买了一次后,就再也没见到他来了? 这是我们常见的复购率低的问题,也就是俗称的回头客少. 那为什么复购率低呢? 可能是广告做的不好,导致用户忘记了你的产 ...

最新文章

  1. svn冲突的解决办法
  2. 用ajax控件作的高级搜索
  3. pythongoogle.probuf.timestamp_数据通信格式:Google Protobuf
  4. 电路基础知识 -- 数模信号
  5. 找不到using System.Web.Script.Services 的问题
  6. dlopen linux 实例_Linux静态库和动态库
  7. git 常用命令(含删除文件)
  8. 经典算法大全之河内之塔
  9. 离散数学反对称关系_离散数学课程总结(4)
  10. confluence统计_【漏洞预警】confluence远程代码执行漏洞(CVE-2019-3396)
  11. Java-数据库连接池第一篇
  12. iptables -F 后断开连接
  13. 全球顶尖互联网公司谷歌都在使用的Mono-Repo单体仓库
  14. RAID磁盘阵列与阵列卡 2022.6.5
  15. 朱利亚 matlab分形图,【分形之美 02】分形图像怎么画?详解曼德勃罗朱利亚分形绘制方法...
  16. MySQL 怎么插入10天前的日期_Mysql笔记
  17. python excel表格去重_都说Excel大法好,Python大法其实也不错,批量去重处理更是神啊...
  18. Invalid bound statement (not found): org.seckill.dao.Suc
  19. 专访:6位飞桨开发者的「新生代」AI创新故事!
  20. php织梦cms 安装教程,Linux服务器上安装织梦CMS,linux服务器织梦cms_PHP教程

热门文章

  1. 对房地产交易-租房的思考
  2. ionic3保存图片到本地相册
  3. USACO-Arithmetic Progressions
  4. php表格增加一行数据,Excel表格如何增加一行
  5. 微信小程序 java校园二手物品交易系统uniapp
  6. android手机使用otg usb手柄
  7. 人脸识别App面临的安全风险
  8. PyQt5教程(二):日期与时间
  9. golang实现图片颜色反转、图片灰度、缩放、转为字符画
  10. 应用程序迁移_加速绿色IT-关于应用程序迁移和重新托管的实用指南