数据分析SQL笔试题系列第5篇来啦!。之前笔试题的文章如果没有看可以移步公粽号【数据分析星球】,还有更多面试题库领取:
【数分面试宝典】大厂高频SQL笔试题(一)
【数分面试宝典】大厂高频SQL笔试题(二)
【数分面试宝典】大厂高频SQL笔试题(三)
【数分面试宝典】大厂高频SQL笔试题(四)
01、写在前面
数据分析SQL面试笔试题系列第5篇来啦!
数据分析面试会重点考查候选人两方面的能力,一个是基础的数据工具能力,最常考的就是SQL,这部分前面我们已经有4篇连载文章全面剖析了大厂的常考笔试题型,没看的同学不要错过了,可以戳:
考查的另一方面就是业务思维能力了,这一块主要是设定一些常见的业务场景,需要你给出对应的分析思路和方法,这一块对于没有数据分析经验的小伙伴们来说就很不友好了,很多面试的朋友碰到这类题都会很慌,无从下手,因为没做过,也不知道怎么分析啊!!!
不过不用怕,我收集了近几年一些大厂的面试笔试题,有笔试题也有业务题,通过这些题目的详细讲解,你应该就能掌握这类题目的解答思路了,话不多说,今天我们先来扒一扒某知名网购大厂的题目吧!
一共有3道题目如下:
SQL题:用户网购行为分析
业务题1:销售额下降了怎么分析?
业务题2:估算星巴克门店的销售额
02、用户网购行为分析
1)需求:
分析有订单事务表:orders
加购事务表:addcart
请用SQL代码分析用户对商品的行为特征,包括:已购买,购买未加购,加购未购买,加购且购买。
2)解题思路:
1.需要得到user_id和item_id的购买和加购的组合情况,使用这两个主键进行关联。
2.根据是否可以关联来判断是否购买和是否加购。
3.使用full join外连接,MySQL不支持 full join ,可以使用左连接和右连接后使用union即可。
代码如下:
select
a.user_id,
a.item_id,
1 as '已购买',
case when b.item_id is null then 1 else 0 end as '购买未加购',
0 as '加购未购买',
case when a.item_id=b.item_id then 1 else 0 end as '加购且购买'
from orders a
left join addcart b
on a.user_id=b.user_id
and a.item_id=b.item_id
union
select
a.user_id,
a.item_id,
case when b.item_id is not null then 1 else 0 end as '已购买',
0 as '购买未加购',
case when b.item_id is null then 1 else 0 end as '加购未购买',
case when a.item_id=b.item_id then 1 else 0 end as '加购且购买'
from addcart a
left join orders b
on a.user_id=b.user_id
and a.item_id=b.item_id
order by user_id,item_id
;
03、销售额下降了如何分析?
1)需求
这是一道非常经典的业务题。
如果我们发现,某店铺2020年11的销售额同比去年11月下降了60%,如果你是这块业务的数据分析师,你会如何分析?请写出你的分析思路框架。
2)解题思路
1、先确认数据来源是否可靠,指标口径是否一致,很多时候,大家只是道听途说,讲的不是同一个事情,埋头就开始分析,反而浪费了时间精力,需要首先确认问题是否真实存在。
2、如果数据来源可靠,指标口径一致,先看外部市场环境,是否是整体市场大盘在下降,受到大盘的影响。
3、如果不是外部因素,看内部问题,对内部因素进行指标成分拆解,可以按照以下的方式进行拆解。
4、具体可能的拆解方式如下:
销售额 = 访客数 * 下单率 * 客单价 - 退货金额
访客数 = 新客户 + 老客户, 新客户 = 渠道的流量 * 转化率
下单率 = 页面访问量 * 转化率
订单取消率 = 订单取消数/订单总数
5、针对指标的变化进行提建议,定位到具体的原因后,针对性的给出改进策略方案,如开展促销活动、商品。
04、估算一个星巴克门店的销售额
1)需求
某CBD楼下有一个星巴克门店,面积约为40平方米。请预估该门店每周的营业额。这其实是一个非常经典的费米估算问题,出现这类问题,并不是要求你要十分精确的计算出最终数据。而是考查你分析和拆解问题的思维能力。
2)解题思路
费米思想的两个步骤:
1.把问题进行拆解,直到拆解到不能拆解需要估算的基本问题
2.对基本问题的估算,不要估算其本身,而是先估算其上下界,然后在上下界的范围内估算出数值。
营业额 = 消费人数 * 平均消费金额 (区分工作日和周末)
消费人数 = 营业时间 * 单位时间消费人数 (区分高峰时段 + 低峰时段)
3)估算
每天按照12h营业时间计算,其中客流量大有4h,客流量小8h(正常估)。
休息日平均营业额/4工作日平均营业额(正常估)。
工作日流量大的时候,每3分钟接高一人次,人均消费30元(高估)。
一个店40平米,我们假设50%的比例,那就是20低平米,可以站下10个人(低估)。
那这样工作日高峰时间段每小时消费人数= 1h/3min * 10= 20 * 10= 200 个,非高峰估算60个。
那工作日一天 营业额 = 4 h * 200 个 * 30元 + 8 h * 60 个 * 30元 = 38400
一周的营业额 = 38400 * 5 + 38400/4 * 2 = 211200。
以上就是数分面试宝典系列—SQL面试笔试题第5篇文章的内容,部分历史文章请回翻公粽号【数据分析星球】,更多数据分析面试笔试的文章持续更新中,敬请期待,如果觉得不错,也欢迎分享、点赞和收藏哈~