其他
数据治理 | 如何实现SQL数据库的横向匹配
我们将在数据治理板块中推出一系列原创推文,帮助读者搭建一个完整的社科研究数据治理软硬件体系。该板块将涉及以下几个模块:
计算机基础知识
编程基础 (1)数据治理 | 带你学Python之环境搭建与基础数据类型介绍篇
(4)数据治理 | 还在用Excel做数据分析呢?SQL它不香吗
(5)数据治理 | 普通社科人如何学习SQL?一篇文章给您说明白
(6)本期内容:数据治理 | 如何实现SQL数据库的横向匹配
数据采集 数据存储 (1)安装篇 数据治理 | 遇到海量数据stata卡死怎么办?这一数据处理利器要掌握
(2)管理篇 数据治理 | 多人协同处理数据担心不安全?学会这一招,轻松管理你的数据团队
(3)数据导入数据治理 | “把大象装进冰箱的第二步”:海量微观数据如何“塞进”数据库?
数据清洗 数据实验室搭建
Part1前言
Part2示例表
Part3Excel常用的匹配方法:vlookup
结果:
Part4SQL的数据匹配方法:
(一)什么是表联结
(二)笛卡尔积
select * from table_1, table_2;
结果:
(三)内联结
inner join
来实现:select *
from table_1 as t1
inner join table_2 as t2 on t1.城市 = t2.城市;
执行结果:
城市 | 生产总值 | 城市 | 人均生产总值 |
- - - + - - - - - - - + - - - + - - - - - -
杭州市 | 15373.05亿元 | 杭州市 | 152465元 |
宁波市 | 11985.12亿元 | 宁波市 | 143157元 |
温州市 | 6606.11亿元 | 温州市 | 71225元 |
说明:
使用inner join
联结表,数据库会先创建笛卡尔积,ON后面定义了满足条件的数据,这边以城市为联结键,可以根据下图加深理解:
select t1.城市, 生产总值, 人均生产总值
from table_1 as t1
inner join table_2 as t2
on t1.城市 = t2.城市;
执行结果:
城市 | 生产总值 | 人均生产总值 |
- - - + - - - - - - + - - - - - - +
杭州市 | 15373.05亿元 | 152465元 |
宁波市 | 11985.12亿元 | 143157元 |
温州市 | 6606.11亿元 | 71225元 |
TIPS:
(四)外联结
left outer join
来实现:select t1.城市, 生产总值, 人均生产总值
from table_1 as t1
left outer join table_2 as t2 -- 也可以简写成 left join
on t1.城市 = t2.城市;
执行结果:
城市 | 生产总值 | 人均生产总值 |
- - - + - - - - - - + - - - - - -
杭州市 | 15373.05亿元 | 152465元 |
宁波市 | 11985.12亿元 | 143157元 |
温州市 | 6606.11亿元 | 71225元 |
嘉兴市 | | 112751元 |
说明:
星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
文 | 《大数据时代社科研究数据治理实务手册》
欢迎扫描👇二维码添加关注