⽆数数据分析师吐槽⾃⼰是SQLBoy,但我好羡慕他们...
⽂末扫海报⼆维码领【MySQL安装包+SQL直播预习题】
图⽚源于⽹络
眼看着,10⽉过去了⼀半,⾦9银10的招聘季就要结束了。
各位准数据分析师们的⾯试进度如何?
相信⼤家都知道,⼊职数据分析师需要经历两道专业的⾯试关卡:业务⾯+技术⾯
今天,Amber就来和⼤家谈下两道关卡中的技术⾯。
数据分析师在⽇常的⼯作中,从数据库中取数、数据处理、清洗可以说是占⽤了80%的⼯作时间,真正的分析过程也就
只有剩余的20%。
因此,作为取数必备的⼯具语⾔SQL,是数据分析技术⾯中最常考、必考的题⽬。
这就直接导致了,许多学艺不精的SQL新⼿,提前退出了offer的争夺...
所以说,SQLBoy也不是那么好当的
接下来,Amber来为⼤家梳理下SQL⾯试中的⼩秘诀~
1
80%的SQL题都在考察的语法是什么?
为⽅便⼤家理解每个函数的作⽤,先建⼀个表,后⾯以这个为⽰例。
如果有千万⽤户数据,想知道有多少去重的⽤户数?—去重distinct
--罗列不同的id
lectdistinctidfromtable_1
--统计不同的id的个数
lectcount(distinctid)fromtable_1
--优化版本的countdistinct
lectcount(*)from
(lectdistinctidfromtable_1)tb
distinct会对结果集去重,对全部选择字段进⾏去重,并不能针对其中部分字段进⾏去重。使⽤countdistinct进⾏去重统
计会将reducer数量强制限定为1,⽽影响效率,因此适合改写为⼦查询。
想分性别进⾏统计,看看男⼥各多少?—聚合函数和groupby
想分性别进⾏统计,看看男⼥各多少?—聚合函数和groupby
--统计不同性别(F、M)中,不同的id个数
lectcount(distinctid)fromtable_1
groupbyx
--其它的聚合函数例如:max/min/avg/sum
--统计最⼤/最⼩/平均年龄
lectmax(age),min(age),avg(age)from
table_1
groupbyid
聚合函数帮助我们进⾏基本的数据统计,例如计算最⼤值、最⼩值、平均值、总数、求和。
只想查看A公司的男⼥⼈数数据?—筛选where/having
--统计A公司的男⼥⼈数
lectcount(distinctid)fromtable_1
wherecompany='A'
groupbyx
--统计各公司的男性平均年龄,并且仅保留平均年龄30岁以上的公司
lectcompany,avg(age)fromtable_1
wherex='M'
groupbycompany
havingavg(age)>30;
希望查询结果从⾼到低/从低到⾼排序?—排序orderby
--按年龄全局倒序排序取最年迈的10个⼈
lectid,agefromtable_1orderbyageDESC
limit10
将数值型的变量转化为分类型的变量?—cawhen条件函数
--收⼊区间分组
lectid,
(cawhenCAST(salaryasfloat)<50000Then'0-5万'
whenCAST(salaryasfloat)>=50000andCAST(salaryasfloat)<100000then'5-10万'
whenCAST(salaryasfloat)>=100000andCAST(salaryasfloat)<200000then'10-20万'
whenCAST(salaryasfloat)>200000then'20万以上'
elNULLend
fromtable_1;
ca函数的格式为(cawhen条件1thenvalue1elnullend),其中el可以省,但是end不可以省。
在这个例⼦⾥也穿插了⼀个CAST的⽤法,它常⽤于string/int/double型的转换。
•字符串
concat(A,B...)返回将A和B按顺序连接在⼀起的字符串。
如:concat('foo','bar')返回'foobar'
lectconcat('www','.iteblog','.com')from
iteblog;
--得到
split(str,regex)⽤于将string类型数据按regex提取,分隔后转换为array。
--以","为分隔符分割字符串,并转化为array
Selectsplit("1,2,3",",")asvalue_arrayfromtable_1;
--结合arrayindex,将原始字符串分割为3列
lectvalue_array[0],value_array[1],value_array[2]from
(lectsplit("1,2,3",",")asvalue_arrayfromtable_1)t
substr(str,0,len)截取字符串从0位开始的长度为len个字符。
lectsubstr('abcde',3,2)from
iteblog;
--得到cd
篇幅有限,先为⼤家整理这么多,多进⾏练习,多进⾏组合使⽤,效果会更好~
如果想了解更多有关SQL的知识,请移步以下⽂章:(点击跳转)
2
SQL同列数据操作你会吗?
实际⼯作中,我们进⾏SQL取数,经常使⽤多表联查,⼦查询、分组聚合计算等,往往我们的操作模式都是针对不同
列,也就是不同字段进⾏相关操作。
但我们很少针对同列数据进⾏操作,因为我们知道同列数据没办法进⾏相关计算,如果想要实现必须转换成两列甚⾄多
列才可以,这样的操作相对⿇烦。
⾯试⼀旦被问到,很容易瞬间懵掉,回答不好,影响⾯试效果。
⼤家看看下⾯的这三道涉及同列操作的问题,你会做吗?
(习题数据请扫⽂末海报⼆维码领取)
是不是多少有些⼩困惑呢?
以上三道问题的答案,将在今天20:30,由爱数据学院特邀讲师Alisa⽼师打造《数据分析SQL⾯试题:如何针对同列数
据进⾏操作》的专题直播中为你在线解答!
⼩伙伴们可提前安装好MySQL,等待直播哟,具体的安装包+教程,请扫⽂末海报⼆维码领取!
讲师介绍
这门课有什么?
•SQL数据分析⾯试题介绍
•模拟⾯试题实际业务场景及解题思路
•按照解题思路讲解如何编写SQL语句
实战案例讲解SQL⾯试,让你⾯试不慌张
6年经验名师讲解,快来预约吧!
扫码获取直播链接
为什么听这门课?
理由⼀:少有的SQL技术⾯专题直播,1个⼩时的直播不光可以收获SQL的⼲货知识,还可以获得⽼师针对SQL⾯试的
专业建议,让你⾯试不踩坑。
理由⼆:实战案例在线讲解,模拟⾯试实际业务场景,梳理解题思路,编写SQL语句,真正掌握同列数据操作。
适合⼈群
•准备转⾏数据分析的同学
•有⼀定MySQL经验,正在准备⾯试的同学
•即将⾛向职场的新⼈,未来想从事数据分析⽅向的同学
专业⾯试建议+⼲货讲解,1⼩时直播全搞定
0元课程就等你来,扫码占位吧!
扫码获取直播链接
爱数据·10⽉数据分析专题直播
直播主题:数据分析SQL⾯试题:如何针对同列数据进⾏操作
内容剧透:
•SQL数据分析⾯试题介绍
•模拟⾯试题实际业务场景及解题思路
•按照解题思路讲解如何编写SQL语句
直播时间:10⽉15⽇今天20:30
扫码回复
预约直播
⽴即预约本次直播!
本文发布于:2023-03-01 23:02:33,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677682954102264.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:好羡慕.doc
本文 PDF 下载地址:好羡慕.pdf
留言与评论(共有 0 条评论) |