首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >热门数据分析面试题。

热门数据分析面试题。

作者头像
张俊红
发布2019-09-08 22:01:21
发布2019-09-08 22:01:21
82900
代码可运行
举报
文章被收录于专栏:张俊红张俊红
运行总次数:0
代码可运行

背景

Sql中有一类函数叫聚合函数,比如count、sum、avg、min、max等,这些函数的可以将多行数据按照规整聚集为一行,一般聚集前的数据行要大于聚集后的数据行。而有时候我们不仅想要聚集前的数据,又想要聚集后的数据,这时候便引入了窗口函数

下面通过几道TMD面试题介绍一下如何使用窗口函数。涉及知识点有用于排序的窗口函数、用于用户分组查询的窗口函数、用于偏移分析的窗口函数,每种会通过一道面试题背景题解答。

正文

1、某顶尖外卖平台数据分析师面试题。现有交易数据表user_goods_table如下:

  • user_name 用户名
  • goods_kind 用户订购的的外卖品类

现在老板想知道每个用户购买的外卖品类偏好分布,并取出每个用户购买最多的外卖品类是哪个。

输出要求如下:

  • user_name 用户名
  • goods_kind 该用户购买的最多外卖品类

思路,利用窗口函数 row_number求得每个用户各自购买品类数量排行分布,并取出排行第一的品类即该用户购买最多的外卖品类。

参考题解

代码语言:javascript
代码运行次数:0
运行
复制
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 用户支付额度

现在老板想知道支付金额在前20%的用户。

输出要求如下:

  • user_name 用户名(前10%的用户)

思路,利用窗口函数 ntile将每个用户和对应的支付金额分成5组(这样每组就有1/5),取分组排名第一的用户组即前支付金额在前20%的用户。(注意这里是求前20%的用户而不是求支付排在前20的用户)

参考题解

代码语言:javascript
代码运行次数:0
运行
复制
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 用户登陆时间

现在老板想知道连续7天都登陆平台的重要用户。

输出要求如下:

  • user_name 用户名(连续7天都登陆的用户数)

思路,首先利用偏移窗口函数lead求得每个用户在每个登陆时间向后偏移7行的登陆时间,再计算每个用户在每个登陆时间滞后7天的登陆时间,如果每个用户向后偏移7行的登陆时间正好等于滞后7天的时间,说明该用户连续登陆了7天。

参考题解

代码语言:javascript
代码运行次数:0
运行
复制
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家数据分析面试题了解了窗口函数的实际应用场景,当然假设是大家都已知道窗口函数的语法,窗口函数的使用也确实可以衡量作为数据分析师对sql能力的掌握程度,当然不管是学习何种用法都要结合实际应用背景思考为何需要这种分析函数。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 俊红的数据分析之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档