【FineBI学习打卡】DAY06 左右合并

楼主
我是社区第1095980位番薯,欢迎点我头像关注我哦~

第6天知识点:左右合并常见问题汇总。

 

什么是左右合并呢?左右合并就是将两张表通过关键字段联合在一起形成一张新表。FineBI中左右合并包括:左合并右合并交集合并并集合并

 

该功能与Excel中的Vlookup函数功能以及SQL中的JION函数类似。

 

 

这张图大家肯定都不陌生吧,其实左右合并关系就是以前学过的集合,能理解这几种集合关系,那左右合并肯定也不成问题。但有一些小伙伴在实际操作过程中常常会有以下问题:

 

问题一:在实际业务场景中不知道该使用哪种合并方式。

 

问题二:我明明使用的是左合并,怎么实现的结果不对,像是并集合并计算的结果呢?这应该也是很多初学小伙伴最困惑的点。

 

下面我们就通过案例来看一下这些问题产生的原因及解决方式吧。

 

问题一:选用哪种合并方式?

首先,大家要了解几种合并方式的功能及输出的结果是什么?

 

左合并:类似于Excel中的Vlookup或者SQL中的left join,一般做正向查询

 

右合并:类似于Excel中的Xlookup或者SQL中的right join,一般做反向查询

 

交集合并:类似于SQL中的inner join,结果为两张表的相同数据

 

并集合并:类似于SQL中的full join,结果为两张表的联合

 

不理解的话也没有关系,记住下面这张图。

 

(图片来源:帆软官方帮助文档)

 

看完有没有一点豁然开朗的感觉了?那么现在重点来了,已知有两张数据表:

 

表1【员工信息表】:记录员工架构、员工号、姓名、是否在职、司龄等数据

 

 

表2【员工销售业绩表】:记录员工号、员工姓名、员工各月销售业绩等数据

 

 

观察发现:

 

(1)员工信息表与员工销售业绩表之间有相同的字段【员工号】,且员工信息表中【员工号】唯一,即一个员工号只对应一个员工,和身份证号是你唯一的号码牌一个道理

 

(2)员工信息表包含了在职与离职员工

 

(3)员工信息表中一个员工只有一条数据,但员工销售业绩表中一个员工有三条记录,分别对应着4、5、6三个月份的销售收入

 

假设需要查看在职员工的业绩,应该选用哪种合并方式呢?

 

有小伙伴可能会说,员工销售业绩表】中不是已经有员工的业绩数据了吗,直接用这张表就好了呀,都用不到左右合并这个功能吧。

 

有这样疑问的小伙伴可以再回看这个案例的假设条件,假设条件中有一个限制词在职员工,而这个词的关联字段只存储在【员工信息表】(本案例的合并表)中。

 

因此,想要查看在职员工的业绩,一种方式(左合并方式)是将【员工销售业绩表】中的【销售额】字段匹配到【员工信息表】,另一种方式(右合并方式)是将员工信息表】中的【是否在职】字段匹配到【员工销售业绩表】中。

 

所以答案是左合并或者右合并都可以。

 

左合并结果:

 

 

右合并结果:

 

 

 

问题二:合并结果为什么不对?

 

首先,观察一下选用的合并方式是不是对的,如果不对,重新选择合适的合并方式,如果是对的,那么继续梳理一下两张表之间存在的逻辑关系,仍以上表数据为例:

 

案例需求

想统计在职员工6月的销售业绩(这里注意与问题一相比又多了一个限制条件:6月

 

错误步骤

点击【员工信息表】--选择左右合并--选择左右合并的表【员工销售业绩表】--合并方式选择左合并--合并依据选择【员工号】--过滤,过滤条件为【是否在职】属于在职。结果如下图所示:

 

 

有细心的小伙伴可能发现这结果看上去好像哪里不太对,只有2个在职员工,对应应该只有2条数据,为什么最后结果表会有6条数据,这不对,但问题在哪呢?

 

没错,问题就出现在【员工销售业绩表】里的员工号并不是唯一的,【员工销售业绩表】同一个【员工号】有三条数据,导致左合并之后,就会出现2×3=6条数据,即将员工4,5,6三个月的业绩全都匹配过来了,那如果想要实现上述的案例需求,该怎么办呢?

 

方式一:先将【员工销售信息表】里的数据过滤只保留6月的数据,然后通过【员工信息表】左合并【员工销售业绩表】;

 

方式二:【员工信息表】左合并【员工销售业绩表】之后,在合并之后的大表中过滤只保留6月的数据

 

正确步骤(以方式二为例):

点击【员工信息表】--选择左右合并--选择左右合并的表【员工销售业绩表】--合并方式选择左合并--合并依据选择【员工号】--过滤,过滤条件为【是否在职】属于在职且【月份】为6月。结果如下图所示:

 

 

这样结果是不是就对了呢?

 

如果小伙伴左右合并时再遇到结果不对的问题,一定要先检查一下关联表之间是不是存在重复值哦,大概率都是因为合并依据字段在原始表里不是唯一值导致的。

 

结语

 

左右合并的功能其实并不难,难的是要理解合并的表之间的关联对应关系,是一对一,一对多,还是多对一,多对多,厘清关联关系后,再根据实际业务场景去选择合适的合并方式。


最后留一个小问题,如果把问题二中的案例需求改成:想统计在职员工二季度的销售业绩,除了将员工业绩通过左右合并的方式全部匹配过来,然后再进行分组汇总求和,有没有简单的一步到位的方式呢?

 

答案会在明天的内容中揭晓哦~

 

今天的学习内容就到这里,感兴趣的小伙伴自己动手试一试吧!

分享扩散:
参与人数 +1 F币 +20 理由
苏瑞 + 20 【2024原创内容激励奖励】给你32个赞!

查看全部评分

沙发
发表于 2024-5-21 14:25:02
您好,感谢您对本次 [原创内容激励计划] 的积极参与。此次您的原创帖子内容从实际操作中使用左右合并方式会出现的问题入手,结合具体案例,说明问题产生的原因及解决方式,逻辑清晰,格式规范。再次诚挚地感谢您的发帖,期待您的下一次精彩发文~
板凳
发表于 2024-7-29 10:51:01
表二的源数据可以共享一下吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表