一亩三分地

 找回密码 注册账号

扫描二维码登录本站

微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
查看: 764|回复: 2
收起左侧

携程站数据分析师SQL题分享

[复制链接] |只看干货 |分析|数据科学类, 面试经验, 数科面经, 携程
我的人缘0

升级   17.29%


分享帖子到朋友圈
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (10)
 
 
0% (0)    👎

2020(7-9月) 分析|数据科学类 硕士 全职@携程 - 网上海投 - 技术电面 在线笔试  | Other | 在职跳槽

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

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

x
电话技术面主要是三道SQL题。大家一起来做一下吧!就当练手啦哈哈(1)
Table A
Name/Date/Province/City

Question: Travel Plan the latest 10 days by name.
E.g. Tom/Zhejiang Hangzhou, 2019-10-1~2019-10-7

(2)
Table A
Payer ID/Receiver ID/Date/Amount/Note
Table B
City/Account ID/Name

Q1: Output in and out summary of acount ID == '001', containing conresponding account ID, first transaction date, last transact
游客,本帖隐藏的内容需要积分高于 188 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
ach city ordered by total amount.
E.g.
City/Name/Account ID/NOTE/total Amount

我感觉题目很棒!在这里分享给大家~~走过路过别忘加点米哈~

评分

参与人数 1大米 +1 收起 理由
paladin12 + 1 赞一个

查看全部评分


上一篇:亚麻BIE全流程面经&timeline(附准备材料
下一篇:PDT 面试
我的人缘0

升级   17.29%

 楼主| 等待出嫁了 2020-7-27 02:26:02 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (10)
 
 
0% (0)    👎
这是我当时写的答案。面试官说写得还凑合   感觉他一言难尽呢  求小伙伴批评指正

Q1:
Select Name,concat(concat(start_dt, “~”, end_dt), city_new) as travel_plan
FROM

Select Name,concat(Province,city) as city_new,min(date)as start_dt,max(date)as end_dt
FROM TableA
Where getdate() – date<= 10
Group by Name,city_new) temp

Q2:

Select (case when PayerID=001 then “Out” else NULL END) as  Flow,select Receiver ID as corrID,sum(Amount)as Total_Amt,min(date) as min_date, max(date)as max_date, string_agg(note,‘,’)as note_all
From TableA
Group by Flow,corrID)
UNION ALL

Select (case when Receiver ID=001 then “IN” else NULL END) as Flow,select PayerID as corrID,sum(Amount)as Total_amt,min(date) as min_date, max(date)as max_date, string_agg(note,‘,’)as note_all
From TableA
Group by Flow,corrID)


Q3:
Select b.City,b.Name,b.AccountID,a.total_amt,a.note_all,
Rank() over (partition by City order by a.total_amt desc) as rnk
From TableB b
inner join

Select PayerID,sum(Amount)as total_amt,string_agg(note,‘,’)as note_all
From TableA
Where Receiver ID=“001” AND contains(note,‘7 days’,‘5 days')
Group by PayerID
)a
On b.AccountID = a.PayerID
Having rnk <= 3
回复

使用道具 举报

我的人缘0

升级   13.33%

Yunke 2020-10-8 05:39:52 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
谢谢分享,楼主加油!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

Some icons made by Freepik from flaticon.com

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