Tableau 优课堂 | 第63课:嵌套 LOD 表达式

上节课,我们学习了 Tableau “计算功能”的课程: LOD 表达式的聚合与复制 ,通过概念与示例,了解了 LOD 表达式的应用效果与差异。

▶ 今天,我们继续学习相关课程: 嵌套 LOD 表达式 ,通过示例了解 Tableau 嵌套 LOD 表达式的计算逻辑及上下文中不同维度级别的影响。 

嵌套 LOD 表达式的计算逻辑

在日常工作中,某些业务问题可能分析起来非常复杂,而嵌套 LOD 表达式可以帮助解决这些复杂的场景。

要理解嵌套 LOD 表达式,就得先了解它们的计算逻辑。例如,如果想要计算有多少客户下了特定数量的订单,并求出平均订单数量,该怎么处理呢?

请看如下视图,我们做这样一条平均线。Tableau 会根据横轴上的数值来计算并显示平均线。但这并不是我们想要的结果。

按照这个方法求平均值,其实是找到横轴上客户数量>0的订单数值,对其进行累加后,再除以这些订单数值的计数,而非依据每个客户创建的订单数来求值。

打个比方,假设视图中只有两列数值,其中有 24 个客户只下了 2 个订单,8 个客户下了 12 个订单,在视图中的计算方法是:(2+12)/2 ,但是,我们显然应该是希望,得到所有客户的平均订单数量。

嵌套 LOD 表达式可以帮助我们做到这一点。

先通过下图中的 FIXED 详细级别表达式,求出每个客户的订单数量,然后求平均值。之后再通过第 2 个 FIXED 详细级别表达式,在表范围内(即在所有客户中)取值。

请注意,这样求出来的平均值要小一些,因为综合考虑了订单较少的客户的数量。

嵌套 LOD 表达式的上下文

下面,我们来详细讨论嵌套 LOD 表达式的上下文。

嵌套计算从外部计算继承维度。 也就是说,内部计算的上下文由其父计算定义,而不是由工作表定义。

这里有两个嵌套的 LOD 表达式,它们都将产生相同的结果。这是为什么呢?

因为第一个示例中的嵌套 LOD 表达式继承了外部计算的维度。也就是说,“城市”中包含了 “客户 ID”。

这与最初在“客户 ID”和“城市”级别进行 FIXED 计算是一样的,然后两者求出的平均值都是 FIXED 在“城市”级别上计算的值。

嵌套 LOD 表达式的聚合和复制行为遵循与 FIXED 相同的规则。复制或聚合是为了匹配父维度。

如果内部计算比外部计算聚合得更多,则将内部结果复制到外部计算中。如果内部计算比外部计算粒度更细,则通过外部计算聚合结果。

在这种情况下,外部的 LOD 具有比内部产生更细粒度的聚合,因此将结果从内部复制到外部,然后将整个结果聚合到视图级别的 LOD 中,从而产生最终的结果。

以上就是关于 「嵌套 LOD 表达式」 的全部内容。


(职场责编:李主编 )
2026年11月02日 16:02[查看原文]