优阅达 | Tableau 微课堂(44):详细级别表达式简介

published: 2021-07-20

详细级别表达式简介

详细级别表达式,简称为 LOD 表达式,可用于轻松计算未处于视图详细级别的聚合。

平均利润

假设我们想要查看每个国家/地区的平均利润。这里,有一个按平均利润进行颜色编码的地区,我们可以看出,阿根廷的平均利润是 -48 美元。

但这到底意味着什么呢?如果单击以显示工具提示按钮,转到“查看数据”和“完整数据”标签,就会发现通常一个订单中包含多个项。

现在,我们知道地图显示哪些内容了。针对每个国家/地区显示的“平均利润”是该国家/地区中的所有品种商品的平均利润,而商品品种就是数据集的粒度。

不过,这是我们想要的吗?即使订单中包含多个商品品种时,我们也能找到该国家/地区内的所有订单的平均利润,不是很好吗?换句话说,我们能否向上聚合到订单级别,以计算利润?

使用详细级别表达式

若要查找平均每订单利润,需执行两个操作:首先,必须汇总每个订单 ID 的利润。 然后,需要对每个国家/地区的所有这些值取平均值。

首先,我们要汇总每个订单的利润额。这正是详细级别表达式发挥作用的地方。

表达式看上去就像这样:

{ INCLUDE [订单 ID] : SUM( [利润] ) }

也就是在计算“利润总计”时,要将所有商品品种累积到“订单 ID (Order ID)”中。

稍后我们将更深入地讲解语法,现在只要记住这个表达式是用于汇总计算每个订单 ID 的利润额就行。

现在,我们要对每个国家/地区的这些值取平均值。 我们就在视图内进行操作:

将 Profit per Order ID(每个订单 ID 的利润)拖至“颜色”。

我们需要将聚合更改为“平均值”,方法是单击胶囊,转到“度量”并选择平均值。可以发现,阿根廷的平均每订单利润是 -98 美元,明显不同于我们之前所看到的 -48 美元。

比较平均利润

实际上,我们将两个计算并排放在一起查看。这里显示了所有国家/地区。

左侧是每个国家/地区内所有商品品种的平均利润,就像第一张地图。

右侧是这些国家/地区内所有订单的平均利润,也就是第二张地图中的详细级别表达式。

这两组蓝色条形都是显示了平均值。不过是在不同的详细级别计算的平均值。

左侧的详细级别是 Country(国家/地区)。右侧的详细级别是 Country(国家/地区)和 Order ID(订单(订单 ID)。请注意,我们并未在视图中直接添加“Order ID”(订单 ID)。

我们希望按国家/地区,查看每个订单的平均利润。详细级别表达式本身就能指示每个订单的利润,“国家/地区 (Country)”字段按国家/地区对这些合计值进行细分,而胶囊上的“平均值”聚合是对这些值取平均值。

详细级别表达式语法

我们已经看到了详细级别表达式的作用,现在花一点时间来回顾一下语法。

右键单击 Profit per Order ID(每个订单 ID 的利润)并单击“编辑”,以便再次显示计算编辑器。

详细级别表达式涵括在花括号内。

花括号内的第一部分是关键字,可以是 FIXED、INCLUDE 或 EXCLUDE。

在关键字之后,我们输入该关键字所作用的维度。FIXED 是使用指定维度计算值,不参考视图中的其他任何维度。INCLUDE 在视图中其他任何维度基础之上使用指定维度计算值。

在这里的示例中,我们在 LOD 表达式中包含了 Order ID(订单 ID),此外还有视图中的维度(这里是 Country)。最后一个关键字选项是 EXCLUDE,它将忽略指定维度,即使视图中使用了该维度也是如此。

接下来,输入一个冒号。这就等于告诉 Tableau :我们已经完成了对详细级别的声明,现在准备输入聚合表达式。

最后,聚合表达式本身,这正是我们实际希望计算所发挥的作用,例如得出结果“最小([订单日期])”或“平均值([折扣])”。

FIXED 和 INCLUDE

在每个国家的平均利润示例中,如果订单 ID 在全球范围内是唯一的,则使用 FIXED 而非 INCLUDE。因为在我们的数据集中,订单 ID 仅仅在国家/地区级别才是唯一的,而且一些订单 ID 在多个国家/地区内独立使用,所以 FIXED 和 INCLUDE 在此设置下将得出不同的结果。为什么会这样?

FIXED 仅关注订单 ID,因此是对多个国家/地区内生成的订单进行利润汇总。

FIXED 将要针对比利时的利润总计,计算以 051 结束订单中法国的 -8 美元,因为该订单 ID 同时也出现在比利时的数据中,而 FIXED 仅关注订单 ID。

与此相反,INCLUDE 同时涉及订单 ID(来自详细级别表达式)和国家/地区(来自视图),因此它会将法国和比利时的 051 订单处理成两个单独的订单,并且在显示比利时的利润时,仅考虑比利时的值。

因此 INCLUDE 计算出的这个值比 FIXED 的计算结果高出 8 美元。

如果订单 ID 在全球范围内是唯一的,就像左侧的条形图一样,那么 FIXED 和 INCLUDE 将得出相同的结果。另一方面,如果订单 ID 不是全球范围内唯一的,那么 FIXED 将忽略国家/地区维度,并计算每个订单 ID 的总计。

而 INLCUDE 会基于视图的结构方式对订单进行细分,因此会分别计算不同国家/地区的总计。如果对 INCLUDE 添加这两个值,可以看到总计值与 FIXED 的结果相同。

本节 Tableau 微课堂到此结束,感谢你的耐心阅读。

下节课将带你学习 Tableau 表计算简介 。