SQL,数据分析岗的必备技能,你可以不懂Python,R,不懂可视化,不懂机器学习。但SQL,你必须懂。要不然领导让你跑个数据来汇......,哦不,你不懂SQL都无法入职数据分析岗,更别说领导了。

SQL难吗?说实话,要写好,很难很难。但要通过SQL笔试这关,并不难。相信大伙都使用过Excel,用SQL实现excel 常用操作去学,感觉会比较具体。我自身也刚入数据岗不久,本文也是为自己巩固一下SQL。

数据是网上找到的销售数据,命名为sale,长这样:

01. 关联公式:Vlookup

vlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先创建一个新表:复制sale表并筛选出地区仅为广州的,命名为sale_guang。

create table sale_guang
SELECT * from sale where city="广州";

需求:根据订单明细号关联两表,并且sale_guang只有订单明细号与利润两列

SELECT * from sale a
inner JOIN
(SELECT ordernum,profit from sale_guang) b
on a.ordernum=b.ordernum

02. 对比两列差异

需求:对比sale的订单明细号与sale_guang订单明细号的差异;

SELECT * from sale a
WHERE a.ordernum not in
(SELECT b.ordernum from sale_guang b);

03. 去除重复值

需求:去除业务员编码的重复值

SELECT * FROM sale
where salesnum not in
(SELECT salesnum from sale
GROUP BY salesman
HAVING COUNT(salesnum)>1)

04. 缺失值处理

需求:用0填充缺失值或则删除有地区名称缺失值的行。

--用0填充:
update sale set city = 0 where city = NULL
--删除有缺失值的行:
delete from sale where city = NULL;

05. 多条件筛选

需求:想知道业务员张爱,在北京区域卖的商品订单金额大于等于6000的信息。

SELECT * from sale
where salesman = "张爱"
and city = "北京"
and orderaccount >=6000;

06. 模糊筛选数据

需求:筛选存货名称含有"三星"或则含有"索尼"的信息。

SELECT * from sale
where inventoryname like "%三星%"
or 存货名称 like "%索尼%";

07. 分类汇总

需求:北京区域各业务员的利润总额。

SELECT city,sum(`profit`)
from sale
WHERE city = "北京"
GROUP BY `city`;

08. 条件计算

需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?这些订单的利润总和和平均利润是多少?

--有多少个?
SELECT COUNT(*) from sale
where inventoryname like "%三星%"
and `tax` > 1000 ;--这些订单的利润总和和平均利润是多少?
SELECT `ordernum`,SUM(profit),AVG(`profit`)
from sale
where inventoryname like "%三星%"
and `tax` > 1000
GROUP BY `ordernum`;

09. 删除数据间的空格

需求:删除存货名称两边的空格。

SELECT trim(inventoryname) from sale;

10. 合并与排序列

需求:计算每个订单号的成本并从高到低排序(成本 = 不含税金额 - 利润)

SELECT city,ordernum,
(Nontaxamount - profit) as cost
from sale
order by cost DESC;

总结:结构化查询语言(Structured Query Language)简称SQL,果然和它名字一样,查询起来得心应手,但做想做数据处理方面,能明细感受到比Python和excel吃力(也可能是我还没学好orz)。

SQL笔试题原题

贴一些我在面试时遇到过的SQL笔试题吧:

某数据服务公司:

Student表

Score表

(1)查询Student表中的所有记录的Sname、Ssex和Class列。

select sname,ssex,class from student;

(2)查询Score表中成绩在60到80之间的所有记录。

select * from score between 60 and 80;

(3)查询95033班和95031班的平均分。

select class,avg(degree) from Score a
join student b
on a.sno = b.sno
GROUP BY CLASS;

总之是比较简单的SQL笔试题了,当时很快就写完了。实际上这不是原题,不过我有印象就是考察这几个知识点,并且蛮简单的。

某手游公司的SQL笔试题(原题)

(1)建立表Student的语句写下来,表Student是由学号Sno,姓名Sname,性别Ssex,年龄Sage,所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。

create table Student_new
(sno varchar(20) PRIMARY KEY,
sname varchar(10),ssex char(2),
sage int,sdept varchar(25));

(2)在student 表中查询Sdept是“计算机”的学生所有信息并按SNO列排序。

select * from student
where sdept = "计算机"
order by sno ;

(3)在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。

select a.sno,a.sname,a.ssex from student a
join (Course b ,SC c)
on a.sno=c.sno and b.cno =c.cno
where Ccredit = 5 and Grade > 60;

某互联网金融公司SQL笔试题(原题)

(1)表A和表B的交集:

SELECT a.cus_id from `表a` as a
INNER JOIN `表b` as b
on a.cus_id=b.cus_id;

(2)表A和表B的并集:

SELECT * from `表a`
UNION
SELECT * from `表b`;

(3)表A和表B的对称差:

SELECT * from `表a`
where cus_id not in (SELECT * from `表b`)
UNION
SELECT * from `表b`
where cus_id not in (SELECT * from `表a`);

(4)表A中存在但表B中不存在:

SELECT * from `表a`
WHERE cus_id not in (SELECT cus_id from `表b`);

NO.1

往期推荐

Historical articles

【Python自动化办公】分享几个好用到爆的模块,建议收藏!

【干货原创】发现了一个好用到爆的数据分析利器

用Python制作可视化GUI界面,一键实现证件照背景颜色的替换

【硬核原创】盘点Python爬虫中的常见加密算法,建议收藏!!

长按

用 SQL 做数据分析的十大常用功能,附面试原题解答!!相关推荐

  1. 【业务数据分析】——十大常用数据分析方法

    目录 一.数据分析方法 二.营销管理方法论 1.SWOT分析 2.PEST分析 3.4P理论 三.常用数据分析方法论 1.公式拆解 2.对比分析 3.A/Btest 4.象限分析 5.帕累托分析 6. ...

  2. 简述与机器学习相关的十大常用Python库,极简化算法编程

    原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 前言 初学Python的时候,我一直不太理解Python的魅力到底在哪,相比Java,它除了换一种简洁的语法,好像没什么场景是不可替代的. ...

  3. 十大常用电子元器件背后的门道

    十大常用电子元器件背后的门道 对于从事电子行业的工程师来说,电子元器件是每天都需要去接触,每天都需要用到的,但其实里面的门门道道很多工程师未必了解.这里列举出工程师门常用的十大电子元器件,及相关的基础 ...

  4. 数据分析必备十大思维(下)

    "在上一篇文章<数据分析必备十大思维(上)>中,我们总结了数据分析必备的前五大分析思维,今天这篇文章给大家带来后五大分析思维,和十大分析思维系列做个了断." 六.分类思 ...

  5. 2015年站长十大常用工具

    2015年站长十大常用工具 2015年互联网行业发生了太多大事件,滴滴快的.美团大众点评.58 赶集等 O2O 巨头合并:百度推糯米,阿里推口碑,京东推到家,大公司纷纷入局.巨头们动作频频为了在&qu ...

  6. 我所知道的十大常用算法之克鲁斯尔算法(最小生成树)

    前言需求 今天我们学习的是克鲁斯尔算法,我们还是从一个场景里引入看看 有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 1.各个村庄的距离用边线表示(权) ,比如 A ...

  7. 十大常用算法之佛洛依德算法

    十大常用算法的完整实现 一.二分查找算法:https://blog.csdn.net/weixin_46635575/article/details/121532149 二.分治算法:https:// ...

  8. SQL Server实例的十大安全注意事项

    SQL Server is one of the world's leading data platforms. It is being broadly used hosting millions o ...

  9. 在线数据分析4大常用功能

    无论是在商业应用领域还是在学术研究领域,在线数据分析早已得到更多企业的认可.随着网络时代的到来,越来越多的人可以使用在线数据分析.在线数据分析包含众多的内容,本文根据多年数据分析经验,总结了在线数据分 ...

最新文章

  1. 关于char[]转换成LPCWSTR的有关问题
  2. MyEclipse6.5安装SVN插件的方法--在线安装
  3. jboss eap 7_EAP 7 Alpha和Java EE 7入门
  4. MacOS/MacBook设置短语快捷键
  5. java obix_obix协议在java中的配置和使用详解
  6. 为什么开源和企业用户是天生的盟友
  7. 分布式文件系统MFS(moosefs)实现存储共享(一)
  8. 性能测试之LoardRunner 手动关联二
  9. 给定一个 n X n 的矩阵,求它的转置矩阵
  10. php adc类,Maxim:六种主流ADC架构的比较(SAR,Sigma-Delta,Pipelined等)
  11. 无锡市委书记杜小刚等领导一行莅临华云数据调研:为无锡现代化建设插上“数字翅膀”
  12. html5图像自动旋转,HTML5 旋转图像
  13. PDF拆分与合并工具(DOS版)
  14. Android Gatekeeper梳理
  15. 微信小程序开发(原生和uniapp)DOM标签对比介绍
  16. 学生评教html模板,关于学校教学计划范文模板
  17. Java中的多线程安全问题
  18. VBA破解Excel表格保护密码
  19. win10 默认浏览器中找不到谷歌浏览器的解决办法
  20. 耦合式是什么意思_什么是耦合、解耦

热门文章

  1. 基于Qt设计的人脸识别门禁系统(录入、识别、对比、删除)
  2. uipath发送邮件 —— Send Outlook Mail Message
  3. 学习PLC的重要知识点,你知道哪些?
  4. 全站最全面的Python 基础入门必备知识大全,学完即就业!【建议收藏仔细学习】
  5. WebService开发--手机号码归属地查询和天气预报查询
  6. AndroidStudio界面跳转
  7. WordPress如何采集WordPress采集插件推荐
  8. 古文字识别助手与众包平台——项目博客二
  9. 对字节码文件的抑或加密
  10. 北信源内网安全与补丁分发系统简单功能介绍