Include和Exclude

在上一篇中我们介绍了FIXED,在本篇文章中我们介绍Include和Exclude的使用方法。

前言

INCLUDE LOD 的语法与 FIXED 非常相似。唯一的区别是将关键字更改为“包含”,然而,意义却大不相同。

你可以将 INCLUDE LOD 转换为“对于视图中的每个维度和每个列出的维度,计算聚合表达式”。

语法如下:{Include[维度1],[维度2]:sum([维度3])}

当然你可以根据自身的需求书写计算

例子:如果我们在视图中已经有子类别和类别,如果要计算每个子类别、类别和每一个编号产品的销售额总和,但是不想要在视图显示编号这个维度就可以用{include[编号]:sum(销售额)}

Include与Exclude - 图1

因为每当你使用INCLUDE LOD时,你使用的数据比原视图中的数据更精细,为了让更精细的数据显示出来,因此需要聚合这段数据以返回原始(视图)的详细级别。

例子:假设你想知道每个类别中所有编号的平均销售额是多少。

一种方法是在创建条形图的视图中创建类别、产品编号和销售额,然后使用参考线找到平均值。

Include与Exclude - 图2

显示的结果和我们预期有些出入,我们只想看到平均值,我们并不真正关心特定每一种编号产品的销量情况。这时我们可以用Include进行计算。

我们新建一个叫做编号求和的度量:

Include与Exclude - 图3

我们把刚才我们创建好的编号求和拖入

Include与Exclude - 图4

这样我们就得到了很清晰的每种类别下所有编号商品的销售额,当然你还可以根据平均销售额轻松地对数据进行排序。

或许你可能会说,这个也可以通过FIXED LOD来实现,这个也是可以的

Include与Exclude - 图5

这里说明一个fixed与include优先级的问题

fixed与include的相同点:两者都能根据多个维度去聚合一个度量。

fixed与include的不同点:1.筛选器作用:fixed 和included的时候,优先级不一样。 一般的控制器组件对fixed不受影响。一般都是先执行fixed再执行筛选。如果想先执行筛选器就必须勾选优先筛选才行。而include一般都是先执行筛选在执行include的函数。(执行优先级请看下图)

IMG_256

Include会受视图上面(图表)维度的影响。

我们可以看出INCLUDE增加了更多了灵活性,在INCLUDE中你可以在视图中添加更多维度,并且值会相应地改变(如下图),当然你也可以根据自己的需求添加更多的维度。

Include与Exclude - 图7

Exclude

EXCLUDE LOD的使用方法几乎和Include相反,使用这个计算,你不是添加更多维度,而是尽可量的减少它们。

你可以将 EXCLUDE LOD 理解为“对于视图中的每个维度,除了列出的维度的计算聚合表达式”。

语法如下:{exclude[维度1],[维度2]:sum([度量1])}

如果我们在视图中有子类别和类别,则将为每个类别计算销售额的总和,而忽略子类别字段:

Include与Exclude - 图8

由于计算的维度变少了相比于视图中计算范围变大了,因此结果的值在视图中将重复

例子:我们想知道类别的销售额平均数类别平均销售额之间的差距

首先我们需要新建两个的度量

Include与Exclude - 图9

Include与Exclude - 图10

我们还需要新建一个度量来显示差异:

Include与Exclude - 图11

这里我使用attr是为了防止出现有重复销售额无法显示的情况

举个例子:加入有两个人的工时分别为9h和10h这个时候用attr返回null,如果两个人的工时都是9h这时候返回是9h

Include与Exclude - 图12

结果如下图所示:

Include与Exclude - 图13

当然你也可以说也可以用FIXED代替EXCLUDE。这个确实可以,使用EXCLUDE就像INCLUDE一样它可以在中添加更多的维度帮助你进行分析,并且将重新计算。

Include与Exclude - 图14Include与Exclude - 图15

总结:

概括的说,LOD类型(以及你是否首先需要 LOD 计算)将取决于你在视图中的内容。另一个因素是你是否希望计算灵活。

希望你通过阅读本篇文章对你有所帮助。