问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【数据分析面试】大厂高频SQL笔试题(三)

发布网友 发布时间:2024-09-29 20:22

我来回答

1个回答

热心网友 时间:2024-11-17 20:55

数据分析SQL笔试题系列第3篇来啦!之前笔试题的文章如果没有看可以翻看历史文章。

无论你是刚毕业的职场小鲜肉、还是想转行数据分析的小白玩家,只要想进入数据分析的行业,都逃不过数据分析面试的考验,这里最重要也是最关键的一关就是SQL笔试了,不过不用担心,结合作者6年+的工作和面试经验,系统全面地整理了数据分析面试中那些高频出现的以及各大厂的SQL笔试题,学习了这些笔试题的常见套路和解法,把这些题目都刷一遍,在接下来的笔试中应该可以一往无前,收割offer啦!

SQL笔试不仅考查代码的熟练程度,更多的考查的是对业务的理解程度,只有理解了业务背景和逻辑,才能更快速准确地给出答案。本篇选取了PDD的业务笔试题,在某个业务背景下考查SQL能力,赶紧来看看这些题目你都会么?

某购物APP最近上线了一个新功能,用户签到后可以跳转到大转盘抽奖,抽奖获得的奖金可以抵消购物的费用,以此来培养用户使用app的习惯。

现有一张用户行为表user_log,主要字段如下,记录了用户在app上的所有行为日志,即何人user_id在何时event_time进行了什么操作event_id。

需求:1、计算该app每天的访客数以及每天人均行为次数。2、统计每天签到之后并进行抽奖的用户数,注意签到和抽奖行为必须相邻(签到和抽奖行为对应的event_id分别为'register','gift')。

思路:第1问比较简单,计算app每天的访客数,因为用户登录访问app就会在表中产生对应的行为日志,所以每天的访客数只需要按天对用户数去重即可,每天人均行为次数的计算,因为一次行为就会产生一条记录,所以,人均行为次数就是所有的记录计数,除以总的访客数。

第2问升级了难度,虽然也是统计用户数,但是添加了*:签到之后要大转盘抽奖,两个行为一前一后必须相邻才可以。这个时候我们可以用窗口函数的位移函数lead()over()实现,lead可以取当前记录的下一条记录,如果我们对每个用户user_id分组,按照行为时间event_time升序排列,就可以得到一个用户的连续的行为记录,再用lead()就可以得到下一条记录,从而在当前记录中得到下一条记录,对两个连续行为进行筛选,就可以计算满足这个条件的用户数。

为了提高某店铺的营业额,最近运营部门上线了多个运营活动,用户参与活动后可以领取不定额的优惠券,以此鼓励用户下单。但每个用户限参与一个活动,不可同时参与多个活动。

现有一张订单表orders和活动报名表act_join,分别记录了用户的下单明细和用户报名的活动明细。具体字段如下:

订单表orders,大概字段有(user_id‘用户编号',order_id '订单编号' ,order_sales‘订单金额’ , order_time‘下单时间’)。

活动报名表act_join,大概字段有(act_id‘活动编号', user_id‘报名用户',join_time‘报名时间’)

需求:1. 统计每个活动报名的所有用户在报名后产生的总订单金额,总订单数。(每个用户限报一个活动,且默认用户报名后产生的订单均为参加活动的订单)。

2. 统计每个活动从开始后到当天(数据统计日)平均每天产生的订单数,活动开始时间定义为最早有用户报名的时间。

思路:第1问计算总订单金额和总订单数,这两个指标都比较简单sum(order_sales)、count(order_id)就可以,但是关键在于限定条件,是每个活动报名后的用户的汇总,必须是报名了某个活动,且必须在活动开始后的数据统计。可以通过订单表orders和报名表act_join连接,限定订单时间大于等于活动的开始时间即可。

第2问与第1问有相似之处,同样是用户报名后的下单,只是多了一些限定条件:同时要满足要小于等于计算日期当天,也就是程序运行的系统时间now(),在此基础上,计算整体的订单数,除以活动进行的天数,就是该活动每天的平均下单数。

说明:这里使用了窗口函数,计算了每个活动的开始时间,然后join 订单表,通过where条件将上面的限定条件满足。当然这只是一种解题思路,还有很多其他的解法,大家可以尝试。

上面通过2个实际的业务场景,不仅考查了SQL的代码能力,更主要的是考查了大家对业务场景的理解能力,如果理解不了业务场景,也就很难写出SQL代码,相反,如果业务场景非常熟悉,代码就比较简单了,所以,我们在练习SQL的时候,一定要结合着业务场景来练,这样才比较贴合实际业务场景,也更能在笔试中有余,脱颖而出啦!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 常见的SQL面试题:经典50例 SQL面试题(实战题-窗口函数拓展:lag 和lead) 襄阳襄城县高中今年分数线? 轿车的轮辐上甩出刹车油正常吗 西餐礼仪常识 有哪些西餐礼仪 by2一共有多少首歌? twins刚出道的时候唱过的一首歌,歌名叫"想",我找很久都找不到.._百度... 请介绍一些好听的英文歌给我,要好学且好学的.谢谢,尽量多一点哦! 怎样去掉网页中不需要的页眉和页脚? 成交价18万商住两用房过户费多少钱 宋家树生平 请问谁有《前度》 粤语 完整版? 《前度》谁有完整版下载的或者在线观看的发到我邮箱,好的话追加100分... 我现在有一个招行全币种国际信用卡,在办一张标准双币VISA卡是不是多此... 打算申请一张全币种,然后注销原来的标准金卡,可以吗 我想问问,我办了一张民生vi全币种信用卡,这种卡是国际卡在国内基本没... win 7 无线自带wifi开启,为什么都设置好了,其他设备却找不到wifi信号... 为什么win7x64能连接上宽带,能正常上网,但右下方的网络图标显示的是没... ...电脑能上网.用的无线网但是右下角信号图标显示断开求大神指导_百 ... win7,右下角搜索无线信号的图标现在只显示无网络,但路由器是正常连接可... 【SQL】SQL面试50题 分类梳理与解答 2022年常见的SQL面试题:经典50例 金辉长安云筑为什么卖得慢 今年买什么股票好 华硕笔记本 X80L 笔记本如何修改BIOS 安装OEM VISTA, 380v电压转换成220v电压的方法 三根动力电每根380伏变成了每根220伏啥原因 忠心耿耿,粗心大意,兴高采烈,分别是描写人物的什么? (有描写人物的神态... ...大不一样,闪闪发光,难以割舍,舍己为人兴高采烈, ...骨瘦如柴,怒目圆睁,分别是描写什么的?(人物神态 现在的电视都8核4k4色请问是什么意思 四色4k是真4k吗 政府采购的货物、工程与服务(续) 复盘的重要性和意义一句话 复盘的重要性和意义原文 复盘的重要性和意义知乎 广州圣心大教堂在哪个区 想知道广州市广州圣心大教堂在哪 广州圣心大教堂简介 初中课程设置有什么规律吗?