合并查询和追加查询属于表的汇总,可以根据需要将多张表中的数据加载到同一张表中进行分析,可以避免在日后数据建模时进行跨表查询和计算,提高运算效率
合并查询是表与表之间的横向组合,需要表之间有相互关联的字段。当两张或者多张表中某一个或多个数据列下包含部分相同行值时,可以以这些相同值为基准,通过合并查询将多张表数据合并成一张新表
合并查询的新表中,会生成合并表的所有字段,而生成哪些数据记录要看表之间的联接关系
在合并查询中,表的联接关系有以下6种,红色部分为合并后的信息
1.左外部:匹配A、B两个数据集,仅返回A表所有行,B表匹配行
2.右外部:匹配A、B两个数据集,仅返回B表所有行,A表匹配行
3.完全外部:匹配A、B两个数据集,仅返回A、B表所有行(全部的数据)
4.内部:匹配A、B两个数据集,仅返回A、B均存在的数据(仅限匹配行)
5. 左反:匹配A、B两个数据集,仅返回A中存在,同时在B中不存在的数据集(A表中去掉B表匹配行)
6.右反:匹配A、B两个数据集,仅返回B中存在,同时在A中不存在的数据集(B表中去掉A表匹配行)
练习案例
数据源
问题:将销售目标表中的"销售目标"合并到店铺销售明细表中
具体操作步骤如下所示
步骤1:将数据源(店铺销售明细表和销售目标表)导入到Power BI Desktop,单击【转换数据】选项,进入Power Query查询编辑器界面
步骤2:在Power Query查询编辑器中,选择【主页】|【合并查询】|【将查询合并为新查询】选项,选择要合并的表,双击两表的店铺名称字段,"联接种类"选择"左外部",如下图所示
提示Tips
"合并查询"选项下有两个子选项,分别为合并查询和将查询合并为新查询
合并查询:在当前选中表的基础上进行合并操作,合并后的新表将代替原始表
将查询合并为新查询:创建一个新的表,将选中表的内容复制到新表上再进行合并操作,该操作可以保留原始表的内容
步骤3:单击【确定】按钮,生成新的合并表
步骤4:单击"销售目标"字段右侧的扩展选项按钮,选择"销售目标"字段
窗口中出现【展开】和【聚合】选项,【展开】是表示要将嵌套数据中的内容提取出来以常规数据列的形式进行存放,【聚合】是在提取数据列时对其进行聚合计算(如求平均值、最大值、最小值等),然后将聚合结果作为返回值存储在主表中
本案例主要是合并匹配销售目标,所以选择展现销售目标即可
步骤5:单击【确定】按钮,展开字段后的合并表结果如下所示
追加查询是对两张表按照上下方式进行整合,是把字段一样的数据追加到一张表中,相同字段的数据追加到同一个字段下,如果两张表中存在不同的字段,则不同字段的数据会单列。也就是说,当一张表中的数据列名称和类型与另外一张表中的数据列名称和类型完全相同时,就可以进行数据追加操作
提示Tips
"追加查询"选项下有两个子选项,分别为追加查询和将查询追加为新查询
追加查询:在当前选中表的基础上进行追加操作,追加后的新表将代替原始表
将查询追加为新查询:创建一个新的表,将选中表的内容复制到新表上再进行追加操作,该操作可以保留原始表的内容
练习案例
数据源
问题:将三家物流商发货明细表数据合并在一张表中
具体操作步骤如下所示
步骤1:将数据源导入到Power BI Desktop,单击【转换数据】选项,进入Power Query查询编辑器界面
选择【主页】|【追加查询】|【将查询追加为新查询】选项,打开如下图所示的追加查询配置窗口
步骤2:由于本案例是三张表数据,因此选择"三个或更多表",将其他表添加到右侧即可
步骤3:单击【确定】按钮,被追加后的新表(部分截图)如下图所示
A物流商表共有16行,4列
B物流商表共有21行,4列
C物流商表共有26行,4列
追加合并的表总共有63行,4列
注意:如果两张表彼此之间有重复数据,在进行追加查询时,Power BI并不会进行去重操作,即新表中会包含一部分重复的数据,视实际情况自行考虑是否需要手动清除
提示Tips
数据能否进行追加查询,需要满足以下条件:
1.追加表的列名必须一致
2.追加表的列顺序可以不一致
3.某张表里独有的列会单独呈现