用sql取a与b的交集_[数据分析进阶]学好SQL三板斧,包打天下

2f416da4c83d0b67207fad811bc1a54a.png
三板斧是古代长兵器的一种,又名“马战斧”。相传为程咬金所用。斧阔五寸,柄长七尺。用法有劈、砍、剁、搂、截、撩、云、片、推、支等
程咬金绝招,三招名为: 劈脑袋、鬼剔牙、掏耳朵
传说是程咬金在睡觉的时候一个神仙教他的,当他学会第三板斧,要学第4斧的时候被尤俊达给叫醒了 ,所以他只会3斧了

习武之人讲究刀、枪、剑、戟、斧、钺、钩、叉~十八般兵器样样精通,如果说数据分析师也有十八般兵器的话,Python属于剑,飘逸潇洒、一剑封喉SQL属于斧,稳健厚实、一斧下去,地动山摇。

三板斧虽然简单招式简单,但是正所谓:不怕千招会,就怕一招鲜。今天就来讲讲数据分析师不可不学的三板斧


先上一张本文涉及的知识点脑图总结:

71ffcad55601ddafa9151c00915df14f.png
知识点脑图整理

下面三张是本文用的的数据源表头:

7286e84a2b1607a7fc724a6e84843995.png
customers表

8c7b57ccc570f5e604dc833ceed75a93.png
products表

6a8b9f8187293fe4f13f6ceed3320ca7.png
orders表

一、板斧一:基础入门

(一)select:如何从表中选择自己想要的数据

  • 1.选择单独一列数据
--
  • 2.选择两列数据
--
  • 3.选择表中所有列数据
--

(二) where:“去伪存真”选择符合你要求的数据

  • 1.">","<","="匹配式筛选数据
--
  • 2.用between选择区间段数据
--

(三)order by:对选择集排序

  • 1.order by默认为升序
--
  • 2.降序用desc
--

(四)逻辑操作符(and/or/in/not):高级筛选过滤

  • 1.用and匹配多个条件
--
  • 2.用or匹配符合多个条件中的任意一个条件
--
  • 3.用in加()匹配在括号里的任意值(与or操作有点类似)
--
  • 4.用not对后面的条件进行否定(与<>操作有点类似)
--

(五)distinct:去除重复项,保留唯一值

  • 1.用distinct保留唯一值
--

(六)join on:不同表之间的关联

INNER JOIN:求两个表的交集

LEFT JOIN:两个表的交集外加左表剩下的数据

RIGHT JOIN:两个表的交集外加右表剩下的数据

下图阴影部分为不同联结返回的数据集:

086b19ae800853630c782904734dfd93.png
--

(七)union :多个选择语句的结果合并

  • 1.union all用于多个表查询结果合并,保留其中的重复行
--
  • 2.union用于多个表查询结果合并,不保留其中的重复行
--

(八)通配符:模糊查询利器

  • 1.百分号(%)表示任意字符出现任意次数
--
  • 2、下划线(_)表示任意字符出现一次
--

(九)limit关键字时有两个参数,如:limit arg1,arg2,表示从arg1行取数,取arg2条数据

--

二、板斧二:字句顺序

理解SQL语句的执行顺序对深入理解SQL语句和优化SQL非常重要,那么SQL语句的执行顺序是怎样的呢,下图对比了SQL的语法顺序和执行顺序。

3f4ec1c2f186959d7cc19d14f4d712b8.png

FROM:明确数据的来源

WHERE:对源数据进行筛选

GROUP BY:对数据进行汇总分组

HAVING:对分组后的数据进行过滤

SELECT [distinct]:选择数据列[剔重]

UNION:对多个SELECT语句选择的数据进行合并

ORDER BY:对选择出来数据集进行排序

LIMIT:对最终呈现出来的数据进行行数限制

三、板斧三:函数进阶

(一)分组汇总

d938aee0210609be9045e4c7fab38ed8.png
--

e14885de1f56484bea12e09e9f7540b5.png

(二)字符串操作

341ee946d80ed0e5418aa11767804f3d.png
  • 1.left用法
--
  • 2.concat用法
--

(三)、日期时间函数

0ec950a1d995065275e61b966d8533fd.png
  • 1.extract用法
--

5038749558aeabe4d6d03ba7047d21dd.png

(四)、条件函数

  • 使用CASE WHEN对数据按条件分类
--

658d4d0706f720ff43a92aca8d07999f.png

(五)、数学函数

ea58d51f76c2d5e390b468cbc57bb570.png
  • 1.mod用法
--

(六)、窗口函数

a0e5687cf4bd5372caf563a384b46a6e.png
  • 排名函数实战
--

effc209c74be3dfdab68a927ce8b6c41.png
  • 头尾函数实战
--

5a89e55b81fc9b717408c4db1211e704.png
  • 前后函数实战
--

e2ed76797f4057399b6ee737a5851e86.png

四、综合练习

(一)问2020-01-02至2020-02-02期间,购买次数大于等于2次的客户全部信息?

此题包含时间段筛选、分组汇总和分组后筛选知识点

--

607073f378b8d1c03c9666c4eed0887c.png

(二)问2月份男性客户中,购买金额总和排行前五的客户全部信息?

此题题目虽然简短,但是其中包含知识点很密集:分组汇总、联结、分组筛选、排序和限制返回知识点,考察的是知识点的综合运用。

--

89a7337c376492c84d79908e464088a8.png

以上就是本期的分享,有疑问的可以私信我,欢迎大家和我交流探讨。

最后,喜欢就点个赞,您的点赞是创作者最大的动力~

以上均为本人原创整理,转载请注明出处!

超级菜鸟怎么学习数据分析?​www.zhihu.com
d69d47cad126cceb500c31ef9a04a0fa.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值