大数跨境
0
0

「数分秋招」 大厂面试笔试真题解析-字节

「数分秋招」 大厂面试笔试真题解析-字节 数据分析星球
2024-10-08
0
导读:数分大厂秋招求职面试笔试题系列-字节面试笔试题解析
公众号文章都是按照系列更新,大家可以按需获取哈,干货内容可以戳:

点我查看>>【数据分析思维系列】<<

点我查看>>【数据分析工具系列】<<

点我查看>>【数据分析面试系列】<<

点我查看>>【数分统计学系列】<<

点我查看>>【数据分析概述系列】<<
点我查看>>【白话数据分析系列】<<


00 写在前面

哈喽,大家好,星球哥(秋招季版)上线啦!🌟
宝子们,是不是在为数据分析的秋招焦虑呢?面对一大堆简历模板和面试攻略,感觉无从下手?面对面试官的各种刁钻问题,感觉自己总是答不到点子上?或者是,总觉得自己的项目经验不够突出,技能不过硬?再加上面试笔试题太多,不知道从何刷起,各大厂的面试风格和流程也千差万别,让人头疼不已?没关系,星球哥来帮你们啦!
❤数据分析面试会重点考候选人两方面的能力,一个是基础的数据工具能力,最常考的就是SQL,我们会剖析大厂的笔试真题,讲解一类题目的解法,授人以鱼不如授人以渔。
❤❤考查的另一方面就是业务题,这一块主要是设定一些常见的业务场景,需要你给出对应的分析思路和方法,这一块对于没有数据分析经验的小伙伴们来说就很不友好了,很多面试的朋友碰到这类题都会很慌,无从下手,因为没做过,也不知道怎么分析啊!!!

不过不用怕,
数据分析面试笔试的大厂真题解析系列来了!收集了近几年一些大厂的面试笔试题题,通过这些题目的详细讲解,掌握这类题目的解答思路了,授人以鱼不如授人以渔!




01 大厂笔试题解析


01 题目描述


【题目描述】
计算用户在直播间的最大连续登录天数。用户登录天数的连续性允许间隔不超过2天,如用户分别在1356号进行登录,则用户的最大连续登录天数为6天。

表结构如下:DROP TABLE IF EXISTS test_login_events; CREATE EXTERNAL TABLE IF NOT EXISTS test_login_events (    user_id             INT COMMENT '用户id',    login_datetime      STRING COMMENT '登录时间' ) COMMENT '直播间访问记录' STORED AS ORC TBLPROPERTIES ( "orc.compress" = "SNAPPY", "discover.partitions" = "false" );



02 解题步骤

     

第一步:去重处理,获取用户每天的首次登录数据。

WITH temp1 AS (    SELECT        user_id,        login_datetime,        date_format(login_datetime, 'yyyy-MM-dd') AS login_date    FROM        test_login_events)

第二步:为每个用户每天的登录记录按时间排序,取每天的第一条登录记录。

     
, temp2 AS (    SELECT        user_id,        login_datetime,        login_date,        row_number() over (partition by user_id, login_date order by login_datetime) AS rn    FROM         temp1)

第三步:过滤出每天的首次登录记录,去重用户的重复登录。

     
, temp3 AS (    SELECT        user_id,        login_datetime,        login_date    FROM         temp2    WHERE        rn = 1)

第四步:计算每条登录记录与前一条登录记录之间的时间间隔(单位:天)。

     
, temp4 AS (    SELECT        user_id,        login_datetime,        login_date,        lag(login_date) over (partition by user_id order by login_date) as last_login_date,        datediff(login_date, lag(login_date) over (partition by user_id order by login_date)) as login_diff    FROM        temp3)

第五步:根据时间间隔设置标记(login_session_flag),如果时间间隔大于2天,则标记为1,否则为0。

     
, temp5 AS (    SELECT        user_id,        login_datetime,        login_date,        last_login_date,        login_diff,        if(login_diff > 2, 1, 0) as login_session_flag    FROM        temp4)

第六步:根据标记值计算用户每个登录周期的session_id,用于标识连续登录的周期。

     
, temp6 AS (    SELECT        user_id,        login_datetime,        login_date,        last_login_date,        login_diff,        login_session_flag,        concat(user_id, '_', sum(login_session_flag) over (partition by user_id order by login_datetime)) as session_id    FROM        temp5

)

第七步:计算每个session_id下的连续登录天数(最大日期与最小日期的差值 + 1)。

     


, temp7 AS (    SELECT         user_id,        session_id,        datediff(max(login_date), min(login_date)) + 1 as max_days    FROM        temp6    GROUP BY        user_id,         session_id

)

第八步:汇总每个用户的最大连续登录天数。

     


SELECT     user_id,    max(max_days) as max_daysFROM    temp7GROUP BY    user_id;


完整SQL代码可以扫码进入下方【数分求职圈】查看↓


02 字节面试全流程

更多秋招大厂笔试题和面经可以扫码进入下方【数分求职圈】查看↓

数分求职圈 vs 简历面试服务

更多的大厂面试笔试真题,我新建了一个数分求职的圈子,专注分享大厂数分面试、笔试真题、面经和求职信息,秋招季优惠价,需要的小伙伴可以扫描下方二维码购买,一站式准备面试笔试,用大厂真题降维打击斩获offer!

如果需要简历修改优化、面试辅导mock也可以加我微信:data_xingqiu,3年+求职辅导经验已帮助200+同学斩获心仪offer!





更多【数据分析思维】、【数据分析工具】、【数据分析面试笔试】、【数据分析统计学】系列干货内容请回公众号,更多数据分析干货文章持续更新中,敬请期待,如果觉得不错,也欢迎分享、点赞和点在看哈~



往期精选

end


关注公众号数据分析星球,持续更新数据分析思维和工具干货内容,公众号后台对话框回复关键词“数据分析”,更有史上最全数据分析资料包领取。添加个人微信:data_xingqiu,和更多小伙伴交流数据分析资料、岗位和面经!





【声明】内容源于网络
0
0
数据分析星球
8年+互联网大厂资深数据分析师,4年+数分团队负责人&面试官,专注数据分析提升与求职,提供数分课程,简历修改和面试辅导,数据路上,我们共同成长!
内容 121
粉丝 0
数据分析星球 8年+互联网大厂资深数据分析师,4年+数分团队负责人&面试官,专注数据分析提升与求职,提供数分课程,简历修改和面试辅导,数据路上,我们共同成长!
总阅读22
粉丝0
内容121