![8a606fbf1ca98717230eeafe2a553c24.png](https://i-blog.csdnimg.cn/blog_migrate/4fdce6e96e0ae6faa5a3a8996fca57be.jpeg)
终于开学了,复工一星期的我今天终于有空更新了。在上篇文章中,我们都是使用单一的SQL语句来解决问题,但在实际工作场景中往往伴随着更加复杂的业务问题,我们需要多个语句的联合使用才能得到我们想要的结果。
那么这次咱们继续使用索尼的数据,来点更加深入一点的SQL数据分析。
![91346c9ebc9f4e84e3148db94c591c68.png](https://i-blog.csdnimg.cn/blog_migrate/654e7e0280415d48b0fabe772a056bec.png)
一、数据预览
这次我们一共会用到三张表,分别是微信活动推送表、微信推送明细表、销售表。
这是微信活动推送表,日期和成本是其中的关键数据。
![ab05513e7e3a247bf9dffbf70bfe0490.png](https://i-blog.csdnimg.cn/blog_migrate/d19edf99ea489219a9fd1f95a4fde575.png)
这是微信推送明细表,阅读日期是关键数据。
![3e0815b42be0cf1802a8c670c4266f6e.png](https://i-blog.csdnimg.cn/blog_migrate/8e380ae4cc79689713c6ec91b6cbdd33.png)
这是销售表,交易时间和金额是关键数据
![605e32d694fa3a75056e5b4e9541eae2.png](https://i-blog.csdnimg.cn/blog_migrate/f718932c3d15c4a0e88dd82a47a234c9.jpeg)
二、业务问题
这次就一个问题:哪些微信推送活动给我们带来了好的销售业绩,有比较好的效果?
那么到底什么才算是一个好的有效的微信推送活动呢?这是我们首先要明确的问题,根据上述所列数据,既然有推送成本也有销售额,这里就可以给出评价标准:
ROI(投资回报率)= 收入/活动成本
![43489b3d0cff72a5f65bf9b71c8ca9e0.png](https://i-blog.csdnimg.cn/blog_migrate/2e9d03c387c8d9f593a84c01a9fc88d6.jpeg)
所以我们只要找出ROI较高的活动即可。
三、业务分析
明确了我们想要的指标,然后就可以一一拆解,分步骤解决它,下面直接开撸。
1.思路
我们已经定义了效果好的标准,新的问题来了,就是我们怎么确定某笔交易是由哪个活动带来的呢。按照我们一般的消费习惯来说,当我们看到一个推送广告并点击进去看了,我们要么当时就直接买了,要么需要考虑一下在买,那这个考虑时间一般会在24小时以内,如果真想要差不多也就在这个时间里下单了,当然这里说的是一般大多数情况。所以我们这里再定义一下确定某笔订单是由某个推送活动带来的标准:
· 用户阅读时间是在推送时间24小时以内(不要说你翻到前几天的广告去买)
· 用户下单时间是在阅读时间24小时以内(只给你24小时考虑,爱买不买)
2.SQL代码实现
步骤一:从微信推送活动中,只保留那些阅读日期是在推送日期24小时以内的记录。
· 这里我们先使用 CREATE 语句创建一个新表‘push_reader’
·通过 推送活动ID(camp_id) 连接 活动推送表(push)与 活动推送明细表(`push detail`)
·使用WHERE语句,筛选我们想要的数据
.阅读日期(read_date)大于等于推送日期(drop_dt)
.阅读日期(read_date)小于等于推送日期(drop_dt)加上1
![5a8b4c0c937fd5abe5cb85c8435d1536.png](https://i-blog.csdnimg.cn/blog_migrate/692a50c41b040e3c178bb3851edef9f6.jpeg)
从图中代码运行结果可以看到,我们的新表已经生成。
步骤二:把满足条件的用户(在活动推送一天内阅读)和发生过购买行为的用户进行匹配链接。
·建立一个“推送销售结果表”,并命名为push_sales。
·通过 会员ID(member_id) 连接 阅读过微信文章的会员表 (push_reader)与 销售表(sales)
·使用WHERE语句,筛选出我们想要的数据
.购买日期(transaction_date)大于等于阅读日期(read_date)
.购买日期transaction_date)小于等于阅读日期(read_date)+1
![19cd42f569b56ee011e7a0b0b590cf49.png](https://i-blog.csdnimg.cn/blog_migrate/eba0ac935eebfbed63ebfb54391c39d6.jpeg)
在销售表中提取销售金额(total_amount),方便下面计算ROI。
步骤三:计算ROI,并找到ROI最高的推送活动。
·通过活动推送ID camp_id,连接微信活动表(push)与推送销售结果表(push_sales)
·从微信活动表(push)提取出推送活动的成本信息(cost)
·从推送销售结果表(push_sales)提取出推送活动带来的销售额(total_amount)
·计算每个推送活动的投资回报率ROI(销售额/成本)
·通过ORDER BY语句按照推送活动的ROI指标从高到低进行排序
![ee88c417e0ab3d4bd5ad2cc828cdb8db.png](https://i-blog.csdnimg.cn/blog_migrate/7c56833291ee722dc5a6ed93b1c08def.jpeg)
到这里,哪些活动有效显而易见,后续就可以对接一下业务部门看看ID对应的具体活动名称,知道下次搞什么活动了吧?
![ebc115f402e53e73021edcae04a201a9.png](https://i-blog.csdnimg.cn/blog_migrate/f2569324d446ab937792195a1e6065ca.png)
SQL至此暂时先告一段落,预告一下:下篇我们就来玩点热门的—Python数据分析。