中国统计网 | 新手速进!,SQL大厂面试常考知识点

-点击上方“中国统计网”订阅我吧!-
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
前些天在网上冲浪的时候看到一个案例咨询 , 问说世界500强的数据分析要不要去 , 评论区一片爆炸:
“楼主能分享一下文科生怎么转行做数据分析吗?”
“SQL、python这些学起来好痛苦!”
我看着屏幕苦笑 , 数据分析岗位现在的热门程度如果要形容的话 , 基本就是随便抓一个微博网友都知道这个岗位了 。
Anyway , 言归正传 , 数据分析师的招聘JD你们一定不陌生:
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
可以说 , 不是每个数据分析岗都要求python , 但是每个数据分析岗都需要会SQL 。
我本人曾在滴滴、美团、平安科技的数据分析类岗位实习过 , 实习期间会大量运用sql进行取数 。 也参与了2018年的秋招 , 做过网易、拼多多、新浪等等公司的数据分析笔试题 , 还是比较了解SQL常考的题目类型的 。
写这篇文章是希望帮助还没有实战过SQL的小伙伴、或者了解一些SQL语句 , 但是担心自己了解的太片面的小伙伴 。 这篇文章主要介绍的是:如果想要面试数据分析岗位 , 最优先需要掌握的SQL技能是哪些呢?
读完本文 , 你能快速知道:
除了select这种基本的语句 , 我最应该马上掌握的SQL语句和知识是什么?
面试中SQL题80%都在考察的语法是什么?
这些语法应该怎么使用?
本文将从三大块介绍入门SQL需要掌握的语法和知识 , 分别是最基础的选择(select)和连接(join/union);最常用的函数(distinct/groupby/orderby等);一些小小的进阶技巧(组内排序、取前百分之多少的值、时间函数) 。
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
一.最基本(选数据)
1.怎么把数据从表里选出来?
2.表连接
--table_1中有id,age;table_2中有id , sex 。 想取出id,age,sex三列信息--将table_1,table_2根据主键id连接起来selecta.id,a.age,b.sexfrom(selectid,agefromtable_1)a--将select之后的内容存为临时表ajoin(selectid,sexfromtable_2)b--将select之后的内容存为临时表bona.id=b.id在这里先介绍一下几种join:(敲重点 , 很容易问的哦)
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
join:hive的join默认是innerjoin , 找出左右都可匹配的记录
leftjoin:左连接 , 以左表为准 , 逐条去右表找可匹配字段 , 如果有多条会逐次列出 , 如果没有找到则是NULL;
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
rightjoin:右连接 , 以右表为准 , 逐条去左表找可匹配字段 , 如果有多条会逐次列出 , 如果没有找到则是NULL
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
fullouterjoin:全连接 , 包含两个表的连接结果 , 如果左表缺失或者右表缺失的数据会填充NULL
中国统计网 | 新手速进!,SQL大厂面试常考知识点
文章图片
每种join都有on,on的是左表和右表中都有的字段 。 join之前要确保关联键是否去重 , 是不是刻意保留非去重结果 。
3.两张表数据的字段一样 , 想合并起来 , 怎么办?
--不去重 , 合并两张表的数据select*from(selectidfromtable_1UNIONALLselectidfromtable_2)t;union和unionall均基于列合并多张表的数据 , 所合并的列格式必须完全一致 。 union的过程中会去重并降低效率 , unionall直接追加数据 。 union前后是两段select语句而非结果集 。
二.最常用
为方便大家理解每个函数的作用 , 先建一个表 , 后面以这个为示例 。


推荐阅读