Tableau 优课堂 | 第63课:嵌套 LOD 表达式
欢迎观看由优阅达制作的【优课堂】系列视频。本节课,我们来学习:嵌套 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 表达式」的全部内容。感谢观看本视频,更多 Tableau 学习资源,请关注微信公众号“优阅达大数据生态”。