hello 大家好!我是篱笆老师 Dana,对于这个问题其实可以分为两个小问题:
(1)面试中,SQL需要掌握到什么程度才能通过考核
(2)实际工作中,需要掌握到什么程度才能完成实际工作
我会根据这两个问题总结一下应该怎样提高自己的SQL水平来应对面试并且更好的满足工作需求。
01
面试所需的掌握程度
首先来说说面试。面试中的SQL在近几年一线大厂(谷歌、meta等)的数据职位的面试中考察的越来越简单,你没有看错,不是越来越刁钻而是越来越标准化、流程化。当然不同的公司考察的标准是不同的,面试之前多看看面经是最靠谱的方式,在这里分享的是一个整体的趋向。
而考察的内容主要有以下几类:
1、join 不同的表格求两列之间的差值,知道left,right,inner,outer join的区别
2、运用CASE根据已有的数据分类讨论产生新的列
3、timeseries求k-day rolling sum或者moving average
4、排序,以及三个不同排序函数的联系与区别
5、求metric A当B第一次满足某条件的时候
6、给定好几个表,求一个rate
7、求满足某条件的人而不是人次的数量
8、给一个每天记录数据的table,求day of week的aggregation。
SQL 在 2021年的数据方向面试中目前大部分只存在于phone interview(电话面试),在onsite interview (首轮面试)的时候都不考察了。
onsite interview考察的是R或者python,可以看出各大公司越来越看重求职者真正处理数据的能力而不仅仅是收集数据的能力。
这里说的大部分公司包括了谷歌、脸书(meta)、新兴的独角兽roblox、doordash等等。所以说掌握了以上的基本几类考点,可以说求职者不需要再在SQL上花太多的时间,而是更应该好好准备产品题和基础的概率题。
02
工作所需的掌握程度
其次我们说一下实际工作中SQL到底发挥着什么样的作用。SQL虽然在面试中的比重被削弱了,但在实际工作中可以说是天天都要用。
所以熟练掌握SQL的一些基本函数、高级函数以及如何提高运行效率都对于实际工作大有益处。
因为身处大数据时代,如果想要做数据方向的工作,高效的收集数据、抓取数据是进行数据分析的第一步,所以SQL是至关重要的。
但熟练应用SQL的本领大多是在工作中边学边进步的,而不是使劲看书得来的,所以大家不需要过于用力的准备与担忧,当你真正迈入职场之后,你会在工作中不断积累经验、不断进步的。
03
如何学习/准备?
最重要的部分来了!
我们来说一下如何复习SQL,如何准备这些常用的函数,以及如何通过练习来模拟实战。
我们可以利用一些已有的SQL题目练习,比如Leetcode和HackerRank是两个免费的、资源相对丰富的公开题库网站,里面有一些SQL的题目很适合大家在准备面试阶段拿来练手。在回答这些题目的过程中,可以复习或者说进一步学习一些有用的函数。
同时,建议大家根据以上总结的常考知识点进行查漏补缺,例如是否对以上提出的8个知识点都能马上写出答案呢?
本篇回答重先总结这么多啦!欢迎给我们后台留言私信,关于数据方向求职的任何问题都可以,希望对大家的求职路上能有小小帮助,提供一点点星光!