1. 概述
1.1 应用场景
拼接表,就是将几张数据不同但存在一定联系的表合并为一张宽表,从而实现多表合并。
拼接表场景分为上下拼接、左右拼接两种。
上下拼接多表:
左右拼接多表:
其中,左右拼接又区分为 4 种场景:保留左边全部数据与右边部分数据、保留右边全部数据与左边部分数据、保留左右两边的全部数据、保留左右两边都有的数据。
1.2 实现思路
FineBI 拼接表的规则:默认是列名/字段名相同的拼接为一列。
本文介绍上下拼接和 4 种左右拼接表的实现效果,操作步骤和拼接表的检查。
2. 上下拼接
2.1 效果查看
上下拼接表,实现的效果如下图所示:
2.2 操作入口
在「自助数据集」中,添加步骤「上下合并」实现表的上下拼接。如下图所示:
2.3 实现步骤
详情可参考文档:上下合并基础功能
有「学生成绩」的三张 Excel 表,在自助数据集中,选择 「学生成绩-Sheet1」字段,通过「上下合并」添加「学生成绩-Sheet2」字段,完成上下合并其中两张的操作。如下图所示:
选择拼接表,可一次性选择多张拼接表。
例如,同时合并三张 Excel 表数据。操作步骤如下图所示:
合并规则默认是列名/字段名相同的拼接为一列。因此,若存在表中列名/字段名不一致但实际一致的需要手动调整一下合并字段。
例如,合并的两张表中,姓名列的名称不一致。如下图所示:
修改当前表和合并表「学生成绩-Sheet2」的匹配字段,将「姓名1」和「姓名2」合并为一列,合并结果改为「姓名」,如下图所示:
3. 左右拼接
3.1 效果查看
左右拼接:左表为「选字段」时添加的表;右表为「左右合并」添加的表。
不同的合并方式效果不同,详情说明见本文 3.2 节。
左右拼接需要字段作为合并依据,上图中「姓名」是合并依据(主键)。
3.2 拼接表说明
3.2.1 左合并
左合并:保留左边全部数据与右边部分数据进行拼接。
功能入口:「自助数据集>选字段>左右合并>左合并」。
实现效果:使用左合并就是保留左表的全部数据,右表与左表合并字段相同的行才会保留,其余删除不保留。
详情说明:左右合并步骤之前的数据是左表,点击左右合并后选择的表是右表,默认是以左右表相同字段为合并依据来合并即左表右表合并字段一致的行会左右拼接成一行、不一致的单独一行。因此,如果字段名不同但实际相同需要手动添加修改一下合并依据字段,相同但不合并也要手动删除一下。
3.3.2 右合并
右合并:保留右边全部数据与左边部分数据进行拼接。
功能入口:「自助数据集>选字段>左右合并>右合并」。
实现效果:使用右合并就是保留右表的全部数据,左表与右表合并字段相同的行才会保留,其余删除不保留。
详情说明:左右合并步骤之前的数据是左表,点击左右合并后选择的表是右表,默认是以左右表相同字段为合并依据来合并即左表右表合并字段一致的行会左右拼接成一行、不一致的单独一行。因此,如果字段名不同但实际相同需要手动添加修改一下合并依据字段,相同但不合并也要手动删除一下。
3.2.3 并集合并
并集合并:保留左右两边的全部数据进行拼接。
功能入口:「自助数据集>选字段>左右合并>并集合并」。
实现效果:使用并集合并就是保留左右表的全部数据,右表与左表合并字段相同的行以及不一致的行都会会保留。
详情说明:左右合并步骤之前的数据是左表,点击左右合并后选择的表是右表,默认是以左右表相同字段为合并依据来合并即左表右表合并字段一致的行会左右拼接成一行、不一致的单独一行。因此,如果字段名不同但实际相同需要手动添加修改一下合并依据字段,相同但不合并也要手动删除一下。
3.2.4 交集合并
交集合并:保留左右两边都有的数据进行拼接。
功能入口:「自助数据集>选字段>左右合并>交集合并」。
实现效果:使用交集合并就是保留左右表的部分数据,两表合并字段相同的行才会保留,其余删除不保留。
详情说明:左右合并步骤之前的数据是左表,点击左右合并后选择的表是右表,默认是以左右表相同字段为合并依据来合并即左表右表合并字段一致的行会左右拼接成一行、不一致的单独一行。因此,如果字段名不同但实际相同需要手动添加修改一下合并依据字段,相同但不合并也要手动删除一下。
3.3 操作入口
在「自助数据集」中添加「左右合并」步骤,拼接其他表。如下图所示:
3.4 实现步骤
例如,一张表有同学 A、B、C 的英语成绩,一张表有同学 A、B、D 的语文成绩。将两个表合并成一张,并且包含所有同学数据。这种情况下,合并方式需要选择「并集合并」。如下图所示:
详情参见文档:左右合并基础功能
如果需要拼接更多表,则再添加「左右合并」步骤即可。
如果合并依据字段未匹配上需要手动匹配。如下图所示:
4. 拼接表检查
4.1 合并后出现重复数据
问题现象:
合并后,出现了重复数据。
例如,求各省市用户的消费金额。需要将「用户信息」和「订单信息」进行合并。这时,「1093577」用户出现了三条重复相同数据,如下图所示:
问题原因:
因为每个用户,存在几个收货地址,因为,在被合并的「用户信息」表中,一个「用户ID」对应多条数据。
这时,使用「用户ID」作为合并依据(主键)合并,则会出现多个值的情况,如下图所示:
解决方案:
如何使「1093577」用户的数据仅保留一条?
使用分组汇总求平均值即可,如下图所示:
4.2 合并之后提示数据超限
问题现象:
现象1:数据更新后,在数据预览界面出现报错:当前表数据量超过最大可显示行数。
现象2:使用拼接后的表,进行下一步的操作出现提示:当前表数据量超过最大可显示行数。
问题原因:
在拼表的过程中,表的数据量会大量增加。默认的表数据量为 1000000 。
解决方案:
管理员可参考文档,在管理系统内进行修改:当前表数据量超过最大可显示行数