Tableau教程_数据联接(Join)与数据融合(Data Blending)2-2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

该帖子内容基于Tableau 9.0

继续对数据融合进行剖析,您需要对前一个关于内连接,左连接的帖子熟悉,同时也请您耐心的把这个帖子看完,一定受益匪浅

表关联是基于行级别的,但是数据融合(数据源关联)是基于分组级别的,到底区别在哪里,来两个例子师范一下(示例数据很傻,能说明问题就好)

Table 2

AreaID Year Sales

1 2014 1

2 2014 1

3 201

4 1

4 2014 1

1 2015 1

2 2015 1

3 2015 1

4 201

5 1

行级别的关联,这样关联的结果就是一张有8条数据的表

数据融合,必须有主数据表和辅数据表,辅表会依据关联维度聚合,不可能比数据源关联关系中的粒度更细

我们将通过下面的示例继续剖析数据融合,分别在两张数据库中写入Superstor中的Order表,两张表一模一样(两个EXCEL亦可):

1、分别连接两个数据库的中的Orders表,然后重命名数据源为ds1, ds2,ds1为主数据源,ds2位辅助数据源,编辑数据源关系, ds1.product category = ds2.product category

2、分别双击ds1中的[Product Category], [Sales],继续双击ds2中的[Sales],可以看到数据一切正常

带有蓝色对勾的数据源表示主数据源,橙色表示辅助数据源

辅助数据源中,有橙色链条符号的是指关联字段

功能区中有橙色对勾数据源标志的表示该字段来源于辅助数据源

3、我们将ds1中的[Product sub-category]拖至行功能区[Product Category]的右侧,可以看到ds2中的[Sales]聚合层级仍旧在[Product Category],也就验证我所说的分组级别的关联,但是主数据源的数据粒度是可以细化的

脚本解析(大概描述后台运行的逻辑,不是原脚本):

select ds1.[Product Category],

ds1.[Product Sub-Category],

ds1.[Sales],

ds2.[Sales]

from

(select [Product Category], [Product Sub-Category], SUM(Sales) as Sales

from Orders

group by [Product Category], [Product Sub-Category]) ds1

left join

(select [Product Category], SUM(Sales) as Sales

from Orders

group by [Product Category]) ds2 on ds1.[Product Category] = ds2.[Product Category]

4、将ds2中[Product sub-category]拖至行功能区中ds1 [Product sub-category]的右侧,看到该字段全部变为星号,该效果等效于Tableau的attr()函数

脚本解析(大概描述后台运行的逻辑,不是原脚本):

select ds1.[Product Category],

ds1.[Product Sub-Category],

ds2.[Product Sub-Category],

ds1.[Sales],

ds2.[Sales]

from

(select [Product Category], [Product Sub-Category], SUM(Sales) as Sales

from Orders

group by [Product Category], [Product Sub-Category]) ds1

left join

(select [Product Category],

case when min([Product Sub-Category]) = max([Product Sub-Category]) the min([Product Sub-Category]) else "*" end as [Product Sub-Category] --重点在这行 SUM(Sales) as Sales

from Orders

group by [Product Category]) ds2 on ds1.[Product Category] = ds2.[Product Category]

相关文档
最新文档