中国统计网|每周 · 面试题 | TMD大厂的热门数据分析面试题分享!!
【中国统计网|每周 · 面试题 | TMD大厂的热门数据分析面试题分享!!】
本文插图
每周·面试题 周五更新
本专栏的面试题可以作为练习、补充题库、自检能力在做题的过程中遇到问题可以在评论区留言给小编或者直接找职场老师1对1解答哦!!1
背景
Sql中有一类函数叫聚合函数 , 比如count、sum、avg、min、max等 , 这些函数的可以将多行数据按照规整聚集为一行 , 一般聚集前的数据行要大于聚集后的数据行 。
而有时候我们不仅想要聚集前的数据 , 又想要聚集后的数据 , 这时候便引入了窗口函数 。
下面通过几道TMD面试题介绍一下如何使用窗口函数 。 涉及知识点有用于排序的窗口函数、用于用户分组查询的窗口函数、用于偏移分析的窗口函数 , 每种会通过一道面试题背景题解答 。
2
正文
1.某顶尖外卖平台数据分析师面试题 。 现有交易数据表user_goods_table如下:
- user_name 用户名
- goods_kind用户订购的的外卖品类
输出要求如下:
- user_name 用户名
- goods_kind 该用户购买的最多外卖品类
参考题解:
select b.user_name,b.goods_kind from(select user_name,goods_kind,row_number over(partition by user_name order by count(goods_kind) desc ) as rank from user_goods_table) b where b.rank =1
2.某顶尖支付平台数据分析面试题 。 现有交易数据表user_sales_table如下: - user_name 用户名
- pay_amount 用户支付额度
输出要求如下:
- user_name 用户名(前10%的用户)
注意:这里是求前20%的用户而不是求支付排在前20的用户
参考题解:
select b.user_name from (select user_name,ntile(5) over(order by sum(pay_amount) desc) as levelfrom user_sales_table group by user_name ) b where b.level = 1
3.某顶尖小视频平台数据分析面试题 。 现有用户登陆表user_login_table如下: - user_name 用户名
- date 用户登陆时间
输出要求如下:
- user_name 用户名(连续7天都登陆的用户数)
参考题解:
select b.user_name(select user_name,date,lead(date,7) over(partition by user_name order by date desc) as date_7from user_login_table) b where b.date is not nulland date_sub(cast(b.date as date,7)) = cast(b.date_7 as date)
3 总结
本文分别从3家数据分析面试题了解了窗口函数的实际应用场景 , 当然假设是大家都已知道窗口函数的语法 , 窗口函数的使用也确实可以衡量作为数据分析师对sql能力的掌握程度 , 当然不管是学习何种用法都要结合实际应用背景思考为何需要这种分析函数 。
推荐阅读
- 人工智能|第二届中国超级算力大会在京举行
- 中年|近年来,中国快递发货量快速增长,塑料快递包装99%不能有效利用
- 华为中国云与计算|珠海华发集团与华为签署战略协议
- 金融营销新视界|拥抱金融科技,中国银行持续提升用户体验!
- 直播|官宣!中国首届电商新媒体峰会即将召开
- 中国经营报|利润大增却让员工“自愿降薪”?自称效益好的多益网络今年到底多有钱?
- 芯片|热钱涌入引“虚火之忧” “中国芯”如何浴火新生
- 电信|5G SA正式商用 中国电信“三大引领”彰显创新实力
- 投资界|2020投资界 「F40中国青年投资人榜单」评选正式开启
- 大地量子TerraQuanta|中国已建成70万5G基站、俄将投巨资建“球体”卫星系统...