Tableau 优课堂 | 第52课:LOD(详细级别)表达式简介

published: 2023-05-04

欢迎观看由优阅达制作的【优课堂】系列视频。本节课,我们来学习:LOD(详细级别)表达式简介。

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


平均利润

假设,我们想要查看每个省份的平均利润。在这里,有一个用颜色来展示平均利润高低的分省地图。可以看到,广东省的平均利润是 405.3元。但这到底意味着什么呢?

右键单击地图上的广东省区域,在弹出的菜单中选择“查看数据”,Tableau 将自动弹出“查看数据”窗口,在底部切换查看“完整数据”选项卡,就会发现:通常一个订单中包含多个项。

现在,我们知道地图显示哪些内容了。针对每个省份显示的“平均利润”,是该省份中的所有订单明细记录的平均利润,而订单明细记录就是数据集的粒度。

但一般来说,我们想计算的是订单的平均利润。也就是说,即使订单中包含多个商品品种(即多条明细记录)时,我们也能按照该省份内的所有订单来计算平均利润。

换句话说,能不能向上聚合到订单级别,再计算利润?


使用详细级别表达式

若要计算订单的平均利润,需执行两个操作:首先,必须汇总每个订单 ID 的利润。 然后,需要对每个省的所有这些值取平均值。

第一步,先汇总每个订单 ID 的利润。这正是详细级别表达式发挥作用的地方。表达式是这样的:{ INCLUDE [订单 ID] : SUM( [利润] ) }

也就是在计算“利润总和”时,要将所有的明细记录利润值累积到“订单 ID ”中。

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

然后,将计算字段“每个订单 ID 的利润”分别拖放至“标记”卡的颜色和标签。

现在,我们要对每个省份的这些值取平均值,可以在视图内直接进行操作。

要将聚合更改为“平均值”,方法是:在“标记”卡中右键单击“每个订单 ID 的利润”字段胶囊,在下拉菜单中选择“度量(总和)”-“平均值”选项。

从更新后的视图中可以发现,广东省所有订单的平均利润是 847 元,明显不同于我们之前所看到的 405.3 元。


比较平均利润

我们将两个计算并排放在一起查看,在这个条形图中显示了所有省份:

  • 左侧是每个省份内所有订单明细的平均利润,就像第一张地图;

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

这两组蓝色条形都显示了平均值,不过是在不同的详细级别计算的平均值:左侧的详细级别是省份,而右侧的详细级别是省份和订单 ID。

请注意,我们并没有在条形图视图中直接添加“订单 ID”字段。

我们希望按省份,来查看每个订单的平均利润。在这里,详细级别表达式的功能是计算每个订单的合计利润,并通过“省/自治区”字段按省份对这些合计值进行细分,而胶囊上的“平均值”聚合是对这些值取平均值。


详细级别表达式语法

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

右键单击‘’每个订单 ID 的利润‘’字段,在下拉菜单中选择“编辑”,以便再次显示计算编辑器。可以看到,详细级别表达式被包含在 { } (花括号)内。

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

在关键字之后,需要输入该关键字所作用的维度(第二部分)。

  • FIXED 是使用指定维度计算值,不参考视图中的任何其他维度。

  • INCLUDE 在视图中其他任何维度基础之上使用指定维度来计算值。在此示例中,我们在 LOD 表达式中指定的维度是“订单 ID”,此外还有视图中的维度(本例是省/自治区)。

  • 最后一个关键字选项是 EXCLUDE,它将忽略指定维度,即使视图中使用了该维度也是如此。

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

最后,通过输入聚合表达式(第四部分),来得到我们实际要求的计算结果。例如,我们希望得出结果是“最小([订单日期])”,还是“平均值([折扣])”。


区分 FIXED 和 INCLUDE

在上述每个省份订单平均利润的示例中,如果订单 ID 在全国范围内是唯一的,则使用 FIXED ,而非 INCLUDE。

但是,因为在示例数据集中,订单 ID 仅仅在省份级别才是唯一的,且一些订单 ID 在多个省份内独立使用,所以 FIXED 和 INCLUDE 在此设置下将得出不同的结果。

为什么会这样呢?因为 FIXED 仅关注“订单 ID”维度,所以是对全国所有省份内生成的订单进行利润汇总。

我们以尾号为 727 的订单举例,此订单同时出现在广东省和黑龙江省中。

可以看到:广东 727 订单的利润值是 1104 元,黑龙江727订单的利润值是 966 元。

但因为 FIXED 仅关注订单 ID,而不关注省份,所以经过聚合计算后,两个省的 727 订单利润值都是 2070 元。

与此相反,INCLUDE 同时涉及订单 ID(来自详细级别表达式)和省份(来自视图),因此它会将广东和黑龙江的同号订单处理成两个单独的订单,并且在显示广东的利润时,仅考虑广东的值。

因此,我们用 INCLUDE 计算得出:广东 727 订单利润值是 1104 元,而黑龙江 727 订单利润值是 966 元。


结论

由此可见,如果订单 ID 在全国内是唯一的(参考下图),那么 FIXED 和 INCLUDE 将得出相同的结果。

另一方面,如果订单 ID 在全国内并非唯一的,那么 FIXED 将忽略省份维度,并计算每个订单 ID 的利润总计。

而 INLCUDE 会基于视图的维度对 LOD 指定的维度先进行细分,因此会分别计算不同省份的订单利润总计。但如果将“省/自治区”字段从视图中移除,则会看到总计值与 FIXED 的结果相同。

以上就是关于「LOD(详细级别)表达式简介」的全部内容。感谢观看本视频,更多 Tableau 学习资源,请关注微信公众号“优阅达大数据生态”。


更多相关信息,请访问专题页: Tableau使用入门教程