此系列为《谁说菜鸟不会数据分析》读书笔记,希望与大家一同分享我的学习心得。
本文将详述Access如何合并数据。本文使用Access2016。本文源数据来自于《谁说菜鸟不会数据分析》作者博客。
(一)横向合并
例子:统计不同省份的购买行为偏好。
已知有表:
(1)菜单操作法:
(a)建立两张表的数据库关系:在【数据库关系】中,点击【关系】,弹出显示表对话框,可shift同时选中/ctrl依次选中要建立关系的表名。单击【添加】。
(b)在关系管理器中,将订单明细表中“用户ID字段”拖到用户明细表“用户ID字段”中,在弹出的对话框中选择【连接类型】,进而选择【可包含两个表中字段相同的行】。点击【确定】后返回编辑关系对话框,点击【创建】。
此时,对于订购单明细,用户ID为外键。即订购明细中的用户ID,必须包含于用户明细的用户ID中。
(c)通过Access中【简单查询】来实现合并。单击【创建】->【查询向导】->【简单查询向导】->【确定】,将目标可用字段移入“选指定字段”。
本例中要选取:订购明细—用户ID,订购明细—产品;用户明细—省份。
(d)查询结果
(2)SQL法:点击右下方sql图标
在【设计】—>【sql视图】中,新建查询,输入以下语句,点击【运行】
SELECT 订购明细.用户ID, 订购明细.产品, 用户明细.省份
FROM 用户明细 INNER JOIN 订购明细 ON 用户明细.[用户ID] = 订购明细.[用户ID]
inner join 内连接
left join 左连接
right join 右连接
(二)纵向合并(相同字段结构、不同数据记录的多表合并)
例子:将订单明细“订购明细20110901”“订购明细20110902”“订购明细20110903”进行合并。
(1)菜单操作法:
(a)单击【创建】->【查询设计】->选择“订购明细20110902”,点击【添加】
(b)在【设计】中点击【追加】,选择“订购明细20110901”作为目标表。在查询视图中,选择追加字段。
(c)在【设计】中,点击运行。追加成功。继而将“订购明细20110903”追加到“订购明细20110901”之后。
(2)SQL法:UNION ALL(不去重的联合合并)
insert into 订购单201109 select * from
(select * from 订购单20110901
union all
select * from 订购单20110902
union all
select * from 订购单20110903)
关于union与union all ,参见 http://www.w3school.com.cn/sql/sql_union.asp