昨天关于PQ合并查询的文章,介绍有6种联接方式,经高手提醒发现,PowerBI近期还新增了两种新的联接方式:左半和右半。 什么是左半联接和右半联接呢?我们还是通过昨天的例子先来看一下这两种方式的用法和效果。 在界面操作中目前是看不到这两种联接方式的,仍然只有6种。不过你可以先任意选择一种联接方式,然后通过修改M公式的方式来找到另外两种联接方式。左外的公式最后面的联接类型是JoinKind.LeftOuter,这里我们可以将它修改为JoinKind.LeftSemi,就是左半联接。也可以修改为JoinKind.RightSemi,就是右半联接。看起来像是“内部”联接,不过将它合并结果展开以后,里面都是空值null:- 左半联接(LeftSemi)返回第一个表中在第二个表中具有匹配项的所有行,不返回第二个表的数据。
- 右半联接(RightSemi)返回第二个表中在第一个表中具有匹配项的所有行,不返回第一个表的数据。
以左半为例,左表的结果和“内部”类似,就是两个表取交集后的结果,右表为空,它只返回左半个表,所以称为左半。它们和"内部"联接非常相似,不过当一个表的关联字段有重复值时,就能看出二者的差别了。两个表按"内部"联接的方式合并查询,结果会多一行。而左半联接就不存在这个问题,它只返回能第一表中的行,无论第二个表是否有重复行:以上就是“左半”和“右半”联接的介绍,由于不用匹配另外半个表的每行数据,在性能上应该会比“内部”联接会更好一些,当你有这样的需求时,可以尝试用这种联接方式。
|