数据分析SQL笔试题系列第3篇来啦!更多数据分析干货文章请移步共粽号:【数据分析星球】,领取大厂SQL笔试题库。之前笔试题的文章如果没有看可以戳:
【数分面试宝典】大厂数分高频SQL笔试题(一)
【数分面试宝典】大厂数分高频SQL笔试题(二)
01、写在前面
无论你是刚毕业的职场小鲜肉、还是想转行数据分析的小白玩家,只要想进入数据分析的行业,都逃不过数据分析面试的考验,这里最重要也是最关键的一关就是SQL笔试了,不过不用担心,结合作者6年+的工作和面试经验,系统全面地整理了数据分析面试中那些高频出现的以及各大厂的SQL笔试题,学习了这些笔试题的常见套路和解法,把这些题目都刷一遍,在接下来的笔试中应该可以一往无前,收割offer啦!
数据分析笔试中最常见也是最有难度的就是SQL窗口函数了,SQL窗口函数作为SQL的高阶语法,也是数分工作中最常用的分析函数,也是面试中最常考查的知识点,本文就讲解了各大厂考查的窗口函数题目,通过这些题目就能熟练掌握这个知识点了。
02、计算留存率
留存率是用户运营中非常关键的指标,也是面试中非常喜欢考查的题型,给出如下某个App的活跃日志表active_log,记录了某个用户userid每天active_day在App上登录次数login_cnt 和登录时长duration(分钟),如下图。
需求:计算该App的次日留存率和7日留存率。
第1步:自连接进行日期连接
计算时间间隔类问题,我们需要使用自联结,得到如下形式的格式对于计算留存率十分关键,我们把临时表放到tmp_1表中。
create table tmp_1 as
select distinct a.userid,
a.active_day as a_day,
b.active_day as b_day
from active_log as a
left join active_log as b
on a.userid=b.userid;
查询结果: