SQL分析品牌在2019.5-2020.4期间的复购率(复购率理解、inner join)
【面试题】某公司数据库里有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的应用
注释:复购率也就是一段时间内购买次数大于1的情况,前提是不在同一天,所以需要排除时间相同的情况,也就是用到了表的内连接
SQL分析品牌在2019.5-2020.4期间的复购率(复购率理解、inner join)相关推荐
- 记录一下2019年-2020年期间的学习、工作经历
记录一下2019年-2020年期间的学习.工作经历 2019年,我正在学PHP,那时的我怀着对各种编程知识的好奇心,认为编程界这么多种语言,只要学好一门,以后想转其他的语言应该都不难.于是我就开始疯了 ...
- 黑莓桌面管理器4.2_虚拟桌面管理器行业现状调研分析及发展趋势预测报告(2020)...
QYResearch预测:2020-2026全球与中国虚拟桌面管理器市场现状及未来发展趋势 [纸版价格]:RMB 18000 [电子版(PDF)价格]:RMB 18000 [报告篇幅]:101 [报告 ...
- 西邮linux兴趣小组2019,2020补纳面试题
西邮linux兴趣小组2019,2020补纳面试题 2019补纳 2020补纳 C语言基础 数据结构与算法 GNU Linux常识 关于纳新试题,您需要了解: 本题仅作为面试有限参考 为了代码的简洁, ...
- SQL分析检查工具Soar 和 Soar-web的安装
SQL分析检查工具Soar 和 Soar-web的安装 背景 最近开发需要写一些复杂的Sql脚本,但是依赖Explain工具分析SQl还是有很麻烦,于是乎就找到了这个小米开源的SQL分析 ...
- MySQL优化篇:show profile进行SQL分析
文章目录 1.SQL分析.调优和排查的大体流程 2.show profile是什么 3.show profile分析步骤 (1)是否支持,看看当前的MySQL版本是否支持 (2)开启功能,默认是关闭, ...
- 25、sql分析命令explain和desc
explain和desc命令的效果相同,命令格式如下: mysql> explain SELECT s.id sid, s.name sname , t.id tid ,t.name tname ...
- 面试中的SQL分析二
1,面试题范例一 1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 ...
- 2019一键清空朋友圈_新整理再见2019你好2020朋友圈励志说说
再见 2019 你好 2020 朋友圈励志说说 1. 这是告别的季节, 2019 的烦恼全部抛光 ; 这是蜕变的时刻, 2019 的辛劳不会白忙 ! 值此 2020 年来临之际,特预祝您万事顺 意,新 ...
- 如何用一张影像动图来对比成都市2019年和2020年油菜花分布状态?
春分至,燕子飞时,绿水人家绕.春雷细雨,万物皆醒,华夏大地处处生机盎然.此时的川蜀大地上油菜花盛开,鲜嫩欲滴的柔黄和生机勃勃的嫩绿相映交错,这样的美景尽收眼睑. 四川,仿佛上天遗留在人间的仙境,让人叹 ...
最新文章
- [LeetCode] [C++] 第一轮刷题总结(持续更新~~~)
- insert时调用本身字段_「技术篇」ETL工具Kettle数据对比同步以及Java程序中调用
- p7zip的解压和压缩
- 数据结构0类模板的使用
- 如何保证 HBase 服务的高可用?看看这份 HBase 可用性分析与高可用实践吧!
- 数据卡片_手把手教你构建企业实时数据大屏
- web中ajax实现二级联动,Ajax实现城市二级联动(一)
- 获取文件夹中所有文件的文件名[重复]
- java apns ssl错误_无法使用Javapns/Javaapns SSL握手失败发送推送通知
- 什么是信用评分分析?
- jQuery文档处理程序
- 超市商品管理系统(C++)
- 视频教程-Python数据结构与算法视频教程-Python
- 江阴:智慧融入城市血液,打造创新发展新名片
- QQ客户端管理聊天记录漫游功能 | 解决经常弹窗消息漫游安全验证,QQ服务独立密码的问题
- 2d游戏中角色动画解决方案
- mysql运行语句时出现 FUNCTION *** does not exist
- REW声学测试(二):离线测试
- 验证身份证号码是否合法
- 首次不依赖生成模型,一句话让AI修图!