很久不见,重温LOD的几个要点,同时解答几个疑惑。

一、关于语法的说明

  • 大括号的语法意义{} ,和数组的关系 「26 Apr 2018」

需要特别强调的是,需要特别强调的是,需要特别强调的是,

LOD表达式最后包含的,其实是数组概念中的多个数据,而不是一个结果,比如说,

{ fixed ……: ……}这个表达式,结果是 {1,2,35,499,99}这样的一组数据,而不是我们以为的一个静态结果,比如5.

明白了这一店,你就明白了为什么经常报错。看看下面的图,你就明白了。

LOD 表达式
LOD的大括号
  • 所有的include和exclude表达式在置入视图中都会用作度量,或聚合度量。
  • fixed表达式在视图中可以用作度量,或者维度(如上图),根据数量类型而定。

 

二、LOD如何参与运算

既然LOD表达式最后的结果是一个数组,而不是一个数字,那么LOD参与的所有计算,都要服从公式或者函数的需求。

比如,聚合类计算,加减乘除,都要先把LOD数组聚合,所以下面的公式是对的:

SUM([商品总额])/SUM({FIXED [商品中类 (组)]]:sum([商品总额]])})

1、lod需要看引用它的视图,不同的视图会显示不同的结果,特别是include/exclude还会受维度筛选影响;

2、fixed可以用作度量或者维度,而exclude和include表达式则用作度量或聚合度量;用作度量时,如果与其他聚合参数混合,就需要增加聚合参数,比如放在sum里面。

3、LOD会首先引用/排除在表达式中引用的参数字段,即大括号fixed/include/exclude后面的参数,然后会根据视图的位置和字段,再计算不同的结果。

 

三、如何更好的辨别使用场景

1、筛选器影响LOD计算结果,所以要考虑筛选器影响。

  • 如果使用了维度筛选器,又不想让筛选影响LOD的结果,那就必须使用fixed表达式;
  • 如果希望LOD结果随着维度筛选器而变化,只计算当前可见视图的数据,那么就用include/exclude表达式;

2、视图的聚合度与期待的结果

  • 如果想要的聚合结果比当前视图级别更加精细(聚合度要低、细度要高),那么推荐使用include表达式,执行计算前,指定的维度会先添加到可视化详细级别中(虽然这个维度在视图中不可见);
  • 如果想要的的结果比当前视图级别更加粗(聚合度更高、细度更低),那么就要排除掉一些维度,就用exclude表达式;Tableau exclude表达式会先从可视化详细级别中删除排除的维度并执行计算,假设该维度完全不存在——虽然在视图中显示了这个维度,然后展现结果。赤裸裸的视而不见的粗糙聚合
  • 如果想要指定维度,不管这个维度在不在可视化视图中,那就用fixed表达式吧,但要注意它的优先级别高于维度筛选器,会自动排除维度筛选器的影响。

 

LOD系列

  1. 【Tableau】详细级别表达式_从0到1的入门 (1)入门
  2. 【Tableau】详细级别表达式_位置与语法  (2)
  3. Tableau|LOD 终极实践指南与学习资源   (3)
  4. 重温Tableau| LOD提纲  (4)
  5. 【Tableau】15大详细级别表达式-深度解读 (5)
  6. 【Tableau】15大详细级别表达式-会员分析案例

26 Apr 2018 update 大括号
8 Aug 2018 update part2/3