查看: 1573|回复: 7
收起左侧

FB店面滚烫面经

|只看干货
本楼: 👍   100% (5)
 
 
0% (0)   👎
全局: 👍   100% (5)
 
 
0% (0)    👎

2021(10-12月) 分析|数据科学类 硕士 全职@Facebook - 网上海投 - 技术电面  | 😃 Positive 😐 AverageOther | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
两个小时前面完店面,还不知道结果,花了很多时间看面经,现在回报地里,同时求大米,发大米不花你的大米哈

两道SQL:
This table has 1 row per unique call.
(i.e. Assume it only includes calls between 2 individuals)

Table name: video_calls
+-----------------+---------------+---------------------------------------+
|  column         |  data_type    |  description                          |
+-----------------+---------------+---------------------------------------+
|  caller         |  BIGINT       |  FB ID of person who made the call    |
|  recipient      |  BIGINT       |  FB ID of person who was called       |
|  ds             |  STRING       |  date of the call                     |
|  call_id        |  BIGINT       |  each call has a unique ID            |
|  duration       |  DOUBLE       |  length of time of call, in seconds   |
+-----------------+---------------+---------------------------------------+

SAMPLE ROWS
caller   | recipient   | ds         | call_id | duration        
123      | 456         | 2019-01-01 | 4325    |  864.4   
032      | 789         | 2019-01-01 | 9395    |  263.7            
456      | 032         | 2019-01-01 | 0879    |  22.0
*/

-- Identify the 10 users who initiated / started the most video calls over the past 30 days

我的解答:
select caller, count(*) as cn
  from video_calls
  where ds::timestamp >= curdate()-30 and ds::timestamp<= curdate()
  group by 1
  order by 2 desc
  limit 10

第二道:
Table name: dim_all_users
+------------------+---------------+---------------------------------------+
|  column          |  data_type    |  description                          |
+------------------+---------------+---------------------------------------+
|  user_id         |  BIGINT       |  user's FB ID                         |
|  age_bucket      |  STRING       |  user's age category                  |. From 1point 3acres bbs
|  country         |  STRING       |  country where the user is based      |
|  primary_os      |  STRING       |  main device operating system         |
|  dau_
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
看vedio的绿色版。
小哥追问,那你怎么知道网速和年龄会和rentention rate 有关系呢,我说需要做regression model, 看是不是正相关的。
小哥继续问,那假设所有的国家的网速和年龄用户都差不多,怎么解释retention rate的不同呢,我说那就需要再break down to ,aquisition +existing - chunt, 看到到底是那一块出了问题,是进来的人太少,还是drop得人太多,我们再仔细分析。

小哥follow up. 问pm觉得retention rate不好,想要关掉这个product,你怎么看。
我说根据刚刚的说法,我们可以看看我们哪个做的不好再去改善就可以,如果acquisition太低,那就多发打打广告宣传这个LIGHT就好,如果是churn rate太高,就可以做一个survey,看那些删掉app的人,最想改进的点是什么,比如是不是不能看vedio,不能看图片,再加回去就好
u

小哥提示,那要不要看看其他matrix,我才想起一直看retention rate,没看其他的,赶紧说可以看看revenue,可能rentention rate低,但是engagment 很高,也generate 很多revenue,那就是值得的。

老哥很满意。又问我有什么问题,就结束了。

希望能过呀。


评分

参与人数 16大米 +17 收起 理由
wumtluv + 1 很有用的信息!
ryany5 + 1 给你点个赞!
酱油的奔跑 + 1 很有用的信息!
AprilLin + 1 很有用的信息!
bravoila + 1 很有用的信息!
xujw07 + 2 给你点个赞!
wyn3157 + 1 很有用的信息!
mintmay20 + 1 给你点个赞!

查看全部评分


上一篇:买它 新鲜店面 面经
下一篇:fb dsa intern 电面新鲜面经
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (5)
 
 
0% (0)    👎
谢谢分享!
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   96% (180)
 
 
3% (7)    👎
请问楼主拿到VO了吗?
回复

使用道具 举报

 楼主| skywing610 2021-12-5 06:37:57 | 显示全部楼层 | 🔍试试Job多多
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (5)
 
 
0% (0)    👎
Feiyan 发表于 2021-12-4 16:31
请问楼主拿到VO了吗?

拿到VO了,约到一月初了
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   85% (118)
 
 
14% (20)    👎
Do you need to join table video_call if you already have the DAU=1/0 flag and timestamp in the user table? I thought for the Q2, you can just calculate the % using table 2 only. Am I right?
回复

使用道具 举报

地里的匿名用户
匿名用户-C4F  发表于 2021-12-5 10:46:12
本楼: 👍   0% (0)
 
 
0% (0)   👎
谢谢楼主分享!

不过好奇楼主最后一行 code 为什么要使用 group by
select ds, count(distinct b.c1)/count(distinct a.user_id)::float*100 这边不是已经拿掉 duplicates 了吗?

面试官有针对这部分说什么吗? 谢谢!
 
回复

使用道具 举报

 楼主| skywing610 2021-12-5 23:48:07 | 显示全部楼层 | 🔍试试Job多多
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (5)
 
 
0% (0)    👎
匿名者 发表于 2021-12-4 21:46
谢谢楼主分享!

不过好奇楼主最后一行 code 为什么要使用 group by

你是对的, 因为我是先写的group by, 后面才写的a.ds::timestamp = curdate()-1,其实只有一天,就不需要group by ds了。我忘记去掉group by 了,不过有GROUP BY 也不会出问题。结果是一样的。

面试官没有针对这个部分说什么。他说看起来没什么错误,逻辑很清楚,我一边念一边写,写的很快。面试官只需要看你的逻辑是清楚的就可以了。
回复

使用道具 举报

 楼主| skywing610 2021-12-5 23:51:17 | 显示全部楼层 | 🔍试试Job多多
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (5)
 
 
0% (0)    👎
gatesmylove 发表于 2021-12-4 20:24. 1point3acres
Do you need to join table video_call if you already have the DAU=1/0 flag and timestamp in the user  ...
. 1point3acres
第2题的问题是 What % of daily active users from France were on a video call yesterday?
on video call yesterday的信息都在第一个table里面呀。所以肯定是要merge 第一个table的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表