金海湾首页 | 分类信息 | 招聘 | 房产 | 黄页 | 论坛 | 博客 | 新闻热点
金海湾  >  论坛首页  >  就业指南  >  DA/DS 求职刷题指南(中)
发帖回帖
返回列表
DA/DS 求职刷题指南(中)
楼主
来源:Young@youngtsai 7/15/2021 9:19:00 PM

前两天提到了大家对DA/DS存在的误区,分享了想申请DA/DS岗位,要从哪些方面去准备的部分要素。

Recap一下,Data Scientist/Data Analyst 通常需要集中准备的分为以下几块内容:

* Machine Learning

* 统计,概率与 A/B testing

* Online coding(Python + R)

* SQL

* Product sense

* Project

* Extra Skills

今天将继续分享,SQL, Product Sense, Project, Extra Skills 该如何准备!

四、SQL

1. 常见面试问题

* What is the difference between union and union all? where and having?

* Tablein_app_purchase:

uid: unique user id.

timestamp: specific timestamp detailed to seconds. purchase amount: the amount of a one-time purchase.

This is a table containing in-app purchase data. A certain user could have multiple purchases on the same day

Question 1: List out the top 3 names of the users who have the most purchase amount on '2018-01-01'

Question 2: Sort the table by timestamp for each user. Create a new column named "cum amount" which calculates the cumulative amount of a certain user of purchase on the same day.

Question 3: For each day, calculate the growth rate of purchase amount compared to the previous day. if no result for a previous day, show 'Null'.

Question 4: For each day, calculate a 30day rolling average purchase amount.

* TableFriending

time = timestamp of the action

date = human-readable timestamp, i.e, 20108-01-01

action = {'send', 'accept'}

actor_id = uid of the person pressing the button to take the action target_id = uid of another person who is involved in the action.

Question: what was the friend request acceptance rate for requests sent out on 2018-01-01?

* 题目二涵盖了简单的 aggregate 问题,cumulative 问题,rolling window 问题等 等。搞定这些,其他的都只是一些简单变形。

题目三涵盖了 self-join,并且有一些 tricky 的大于等于号的应用,有兴趣可以在地 里查一下 Facebook 面经的解答。

其他的题目无非是多了一些 tablejoin 麻烦一些或者加了一些 case when,难度 都不会有太大的变化。做好几个经典题,然后自己整理好就可以以不变应万变了。

2. 相关资料准备

* 扫盲网站:SQL ZOO W3schools,非常实用,适合翻阅。

* 两个 Udemy SQL :SQL - MySQL for Data Analytics and Business Intelligence The Ultimate MySQL Bootcamp

* 刷题的话,Leetcode上有一些题,可以做一下。还有好心人直接做了个整理,在这里: summary of sql in leetcode

* Hackerrank 上的题自然是要全刷光的,因为难度非常简单,快的话一两天也许就做完了。

* DataCamp:

Data Gathering- Why API Medium https://lnkd.in/gvahtsN

Intro to SQL https://lnkd.in/giWs-3N

Complete SQL Bootcamp https://lnkd.in/gsgf_fF

Data Visualization Medium https://lnkd.in/g3FSRgY

* 更多的网站:18 best sql online learning resources

* 建议自己下载一个 My SQL 装到电脑上,模拟真实的 SQL 环境来学习。Mysql 里关于Windows function frame clause 的教程: Windows function Frame Clause。这个非常重要,windows function 可以说是 SQL 面试里的大杀器,非常节省时间而且思 路清晰。

* 建议也学会用 WITH common_table_expression。可以让你的 SQL 看起来非常整洁和容易理解。

* 最最重要的来了。如果你觉得刷完题或者学完以上的内容就万事大吉了,那还真的不 是。我一开始也有这样的误区。实际上刷完 Hackerank 也并不能帮你很快的做出我给的例题。而其实,对于 metrics 或者 product 的了解能够帮助你很好的准备 SQL 试,因为所有的 SQL 面试都是围绕着** business 相关的 metrics**而展开的。举例而言,游戏公司一定会考 DAU(daily active user)或者 purchase rate, Facebook 就会是 friend request 相关的,以此类推。所以熟悉你申请公司的业务再针对性准备 SQL,一定会事半功倍。

回复该贴      
发帖回帖
返回列表
 回复主题
          预览