codecamp

Tableau 数据连接

数据连接是任何数据分析的常见要求。可能需要在单个源中连接来自不同表的数据,或者从多个源连接数据。

Tableau提供了使用“Data”菜单中提供的数据窗格来连接表的功能。

连接意味着组合关系数据库中一个或多个表的列。它还创建一个可以保存为表的集合,或者可以按原样使用它。

连接指定有五种类型:

  • 交叉连接。
  • 内部连接。
  • 自然连接。
  • 外连接。 左外连接。右外连接。完全外连接。
  • 自连接。

1. 连接类型概述

连接部分用于组合来自两个或多个表的行,基于它们之间的相关列。1.交叉连接:交叉连接生成的行将第一个表中的每一行与第二个表中的每一行组合在一起。


2.内部联接:内部联接返回正在连接的表中的匹配行。


3.自然连接: 自然连接不使用任何比较运算符。它没有连接方式。如果两个关系之间至少存在一个共同属性,则只能执行自然连接。此外,属性必须具有相同的名称和域。自然连接适用于那些匹配属性,其中两个关系中的属性值相同。

4.外连接:外连接是内连接的扩展形式。它返回正在连接的表的匹配行和非匹配行。

外连接的类型如下:

4.1.左外连接:左外连接返回正在连接的表中的匹配行,以及结果中左表的不匹配行,并将 NULL 值放在来自右表的属性中。

4.2.右外连接:右外连接操作返回正在连接的表中的匹配行,以及结果中右表中的不匹配行,并将 NULL 值放在来自左表的属性中。


4.3.全外联接:完整外部联接用于组合表。因此,它包含两个表中的所有值。当表中的值与另一个表不匹配时,它将在数据网格中返回 NULL 值。


5.1.自联接: 自联接用于将表连接到自身。这意味着表的每一行都与自身以及表的每一行组合在一起。

2. 在 Tableau 中创建联接

我们假设一个数据源 Sample-superstore 来创建两个表(如 Orders 和 Returns)之间的连接。

  • 转到 Data 菜单,然后选择连接下面的 Microsoft Excel 选项。
  • 然后选择 sample-superstore 作为数据源,并单击“Open”按钮。
  • 将数据源工作表中的 Orders 和 Returns 表拖到数据窗格中。然后,Tableau 将自动在 Orders 和Returns 表之间创建一个连接,以后可以根据所需的连接进行更改。


下面的屏幕截图显示了使用 Order id 字段在 Orders 和 Returns 表之间建立内部连接。


3. 在 Tableau 中编辑联接类型

Tableau会自动在两个表之间创建一种连接类型,但可以根据需要进行更改。

  • 单击显示自动创建的连接的两个圆圈的中间。
  • 单击后,将出现一个弹出窗口,其中显示了所有四种类型的连接。
  • 在下面的屏幕截图中,可以看到所有连接,例如:inner join, left outer join, right outer join 和 full outer join。


4. 如何在 Tableau 中编辑连接字段

可以通过单击“数据源”选项来更改字段,以添加连接弹出窗口中可用的新连接子句。选择字段时,可以使用搜索文本框搜索字段。






Tableau 编辑元数据
Tableau 数据混合
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Tableau 相关资源

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }