Tableau教程_数据联接(Join)与数据融合(Data Blending)2-2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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]