【生活质量系列】评测几款用过的咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
查看: 1191|回复: 16
收起左侧

Linkedin Data Scientist Phone Interview

[复制链接] |试试Instant~
我的人缘0
hyper8866 发表于 2018-7-12 07:15:37 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  88% (16)
 
 
11% (2)  踩

2018(7-9月) 分析|数据科学类 硕士 全职@Linkedin - 网上海投 - 技术电面  | Other | 在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
Problem Statement:  Member can make purchase via either mobile  or desktop platform. Using the following data table to determine the total number of member and revenue for mobile-only, desktop_only and mobile_desktop.
The input spending table is
member_id    date    channel   spend
. From 1point 3acres bbs1001    1/1/2018    mobile    100
1001    1/1/2018    desktop    100
1002    1/1/2018    mobile    100
1002    1/2/2018    mobile    100
1003    1/1/2018    desktop    100
1003    1/2/2018    desktop    100

The output data is
date    channel    total_spend    total_members
1/1/2018    desktop    100    1
1/1/2018    mobile    100    1
1/1/2018    both    200    1
1/2/2018    desktop    100    1
1/2/2018    mobile    100    1.本文原创自1point3acres论坛
1/2/2018    both    0    0
. more info on 1point3acres

之前没看清题...R写出来了SQL不会啊...TAT 有大神请写下答案吧...




补充内容 (2018-7-12 12:37):
在code pad写了这么多R后。。面试官跟我说 她不会用R...能不能写一个SQL版本TAT 我于是直接一个剪切把R code都删了。现在想想 应该留着....给有缘人看@@

评分

参与人数 1大米 +1 收起 理由
tzuyiyen + 1 很有用的信息!

查看全部评分


上一篇:UBS data analyst 电面面经
下一篇:Visa Data Scientist电面
我的人缘0
miaozuoyu 发表于 2018-7-12 08:46:04 | 显示全部楼层
本楼: 【顶】   100% (3)
 
 
0% (0)   【踩】
全局: 顶  100% (5)
 
 
0% (0)  踩
MySQL 答案
select date,chn,count(spend) as total_spend, count(distinct member_id)
from
(
select member_id,date,spend,
case when cnt=1 then channel
     else 'both' end as chn
from
(. From 1point 3acres bbs
select member_id,date, count(distinct channel) as cnt
from spending
group by member_id, date) as s1. From 1point 3acres bbs
inner join spending as s2
using(member_id,date). 一亩-三分-地,独家发布
) as t
group by date, chn
order by date
回复

使用道具 举报

我的人缘0
chipmunkL 发表于 2018-7-12 23:43:33 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
0% (0)  踩
SELECT s1.date AS date,
(CAESE WHEN COUNT(DISTINCT s2.channel) = 1 THEN s2.channel ELSE "both" END) AS channel,
(SUM(s2.spend)) AS total_spend,
(COUNT(distinct member_id) AS total_members
FROM Spending s1 LEFT JOIN Spending s2
ON s1.member_id = s2.member_id AND s1.date = s2.date
GROUP BY date
ORDER BY date;
回复

使用道具 举报

我的人缘0
cixian1110 发表于 2018-7-12 07:46:13 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
问题有一处不清楚,假如一个member在第一天买了desktop第二天买了mobile,那么有两种可能
1.两天都算both
2.第一天是desktop第二天是Mobile。

后面一种稍微难写一点点, 下面是code。如果按第一种的话同样思路稍微改改就行。.本文原创自1point3acres论坛
. Waral 博客有更多文章,
with desktop_only as
(. 1point3acres
        select cast(member_id as varchar) || cast(date as varchar)
        from spending
        group by member_id, date
        having sum(if(channel = 'mobile', 1, 0)) = 0.1point3acres网
),
mobile_only as
(
        select cast(member_id as varchar) || cast(date as varchar)
        from spending
        group by member_id, date-google 1point3acres
        having sum(if(channel = 'desktop', 1, 0)) = 0
),
both as
(
        select cast(member_id as varchar) || cast(date as varchar)
        from spending
        group by member_id, date. 牛人云集,一亩三分地
        having sum(if(channel = 'mobile', 1, 0)) > 0
        and sum(if(channel = 'mobile', 1, 0)) > 0
)
select date, channel, sum(spend) as total_spend, count(distinct member_id) as total_members. visit 1point3acres for more.
from
(
        select *, .1point3acres网
        case when cast(member_id as varchar) || cast(date as varchar) in (select * from desktop_only) then 'desktop'
                 when cast(member_id as varchar) || cast(date as varchar) in (select * from mobile_only) then 'mobile'. 一亩-三分-地,独家发布
                 else 'both'. 1point 3acres 论坛
        end as channel
        from spending  
. more info on 1point3acres)
group by date, channel
order by date, channel


. 围观我们@1point 3 acres
补充内容 (2018-7-12 07:47):
with里面没必要写both的subquery 多余了
回复

使用道具 举报

我的人缘0
miaozuoyu 发表于 2018-7-12 08:49:34 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (5)
 
 
0% (0)  踩
L家DS秋招这么早?

Complexity Quiz: Test your understanding of Data Structure
来自于网课《Data Structures for Coding Interview in Python》

回复

使用道具 举报

我的人缘0
miaozuoyu 发表于 2018-7-12 09:13:03 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (5)
 
 
0% (0)  踩
抱歉第一行应该是sum(spend)
回复

使用道具 举报

我的人缘0
 楼主| hyper8866 发表于 2018-7-12 12:11:20 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  88% (16)
 
 
11% (2)  踩
miaozuoyu 发表于 2018-7-12 08:49
L家DS秋招这么早?

不知道呀 感觉SQL写起来是真麻烦...
回复

使用道具 举报

我的人缘0
 楼主| hyper8866 发表于 2018-7-12 12:13:12 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  88% (16)
 
 
11% (2)  踩
cixian1110 发表于 2018-7-12 07:46
问题有一处不清楚,假如一个member在第一天买了desktop第二天买了mobile,那么有两种可能. 围观我们@1point 3 acres
1.两天都算both
...

我觉得是第二种,我感觉核心就在于count=2是both...这要是我们公司数据库五行就出来了

哈哈替广大网友谢谢你的答案....
回复

使用道具 举报

我的人缘0
chipmunkL 发表于 2018-7-12 23:43:21 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
0% (0)  踩
SELECT s1.date AS date, .本文原创自1point3acres论坛
(CAESE WHEN COUNT(DISTINCT s2.channel) = 1 THEN s2.channel ELSE "both" END) AS channel,
(SUM(s2.spend)) AS total_spend, . 留学申请论坛-一亩三分地
(COUNT(distinct member_id) AS total_members
FROM Spending s1 LEFT JOIN Spending s2
ON s1.member_id = s2.member_id AND s1.date = s2.date
GROUP BY date
ORDER BY date;
回复

使用道具 举报

我的人缘0
getdreamoffer 发表于 2018-7-13 10:41:32 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩
请问lz是自己申请的吗?L家有data scientist职位吗 只看到senior的。。
回复

使用道具 举报

我的人缘0
dongqi221 发表于 2018-7-13 22:59:22 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  0% (0)
 
 
0% (0)  踩
同问,现在秋招就开始了吗
回复

使用道具 举报

我的人缘0
getdreamoffer 发表于 2018-7-15 09:36:02 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩
感谢楼主分享!请问楼主用R怎么写啊?
回复

使用道具 举报

我的人缘1
Ryohka 发表于 2018-7-15 09:48:01 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (82)
 
 
3% (3)  踩
现在的Phone interview都要写代码的吗……直接把代码读给对方?
回复

使用道具 举报

我的人缘0
hellomirro 发表于 2018-7-15 22:00:16 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
SQL management studio

with A as (
select date, member_id, count(distinct channel) as dist_channel 来源一亩.三分地论坛.
from table1
group by date, member_id),

B as (
select a.date, a.member_id, t.channel, t.spend, a.dist_channel from
(select * from table1)  as t
left join
(select * from A) as a
on t.date = a.date and t.member_id = a.member_id),. 留学申请论坛-一亩三分地
. 一亩-三分-地,独家发布
C as (
select date, case when dist_channel = 2 then 'both' else channel end as channel, spend
from B )-google 1point3acres
. 围观我们@1point 3 acres
select date, channel, sum(spend) as total_spend, count(*) as total_member from C
group by date, channel. 牛人云集,一亩三分地
order by date, channel
回复

使用道具 举报

我的人缘0
 楼主| hyper8866 发表于 2018-7-16 12:32:21 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  88% (16)
 
 
11% (2)  踩
Ryohka 发表于 2018-7-15 09:48
现在的Phone interview都要写代码的吗……直接把代码读给对方?

有网页codepad,一边打电话一边写代码
回复

使用道具 举报

我的人缘1
Ryohka 发表于 2018-7-16 12:53:58 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (82)
 
 
3% (3)  踩
hyper8866 发表于 2018-7-16 12:32
有网页codepad,一边打电话一边写代码

哦这样还好……
我前一阵接了个电面让我口述代码我直接懵了……
回复

使用道具 举报

我的人缘0
solasistim 发表于 2018-7-31 03:53:18 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (6)
 
 
0% (0)  踩
先用self join找出每天both的users:
with both_users as
(select *.1point3acres网
from table t1 join table t2
on t1.member_id= t2.member_id
and t1.date= t2.date. 1point3acres
and t1.channel='mobile' and t2.channel='desktop'),. from: 1point3acres
. Waral 博客有更多文章,
both_sum as
(select date, 'both' as channel,  sum(t1.spend+ t2.spend) as total_spend, count(distinct t1.member_id) as total_members. 1point 3acres 论坛
from both_users. 一亩-三分-地,独家发布
group by date)
.本文原创自1point3acres论坛
select date, channel,  sum(spend) as total_spend, sum(distinct member_id) as total_members
from table
where (date, member_id) not in
(select t1.date, t1.member_id from both_users)
. 一亩-三分-地,独家发布group by date
union
select *
from both_sum

不确定对不对,求大神指点0.0. 留学申请论坛-一亩三分地
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

GMT+8, 2018-9-22 07:47

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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