优阅达 | Tableau 微课堂(92):LOD 表达式概念主题

published: 2023-05-08

LOD 表达式概念主题

本期将深入讲解 LOD 表达式的更多工作方法。要学习基础知识,请观看微课堂(44):详细级别表达式简介。

详细级别表达式通过引入在计算本身中指定精确聚合级别的功能来扩展 Tableau 的计算语言。

语法

LOD 表达式由 { } 建立。花括号内的第一部分是定界关键字,然后是维度声明,然后是冒号,最后是聚合表达式。让我们从最容易识别的部分开始,依次介绍语法的每一部分。

01、聚合表达式

LOD 表达式的聚合表达式部分应该很熟悉。可以是简单的 SUM([销售]),也可以是复杂的计算。下面是聚合表达式中的一个计算示例,在本例中提供了客户的第二个订单的日期。请注意,聚合表达式不能包含 ATTR 或表计算。

02、维度声明

维度声明标识在执行聚合时定义要使用的详细级别的维度。如果没有声明维度(使用 FIXED 关键字或没有指定关键字),则 LOD 表达式的作用域被认作是表,它是数据的完整聚合。

03、定界关键字

关键字有 3 种:EXCLUDE、INCLUDE 和 FIXED。这些关键字非常强大,要真正理解使用给定关键字的含义与使用案例,建议观看白皮书:了解详细级别表达式(可添加小优微信 dkmxiaoyou 索取)。

维度和度量

使用 EXCLUDE 或 INCLUDE 关键字的详细级别表达式将始终产生度量值。FIXED 关键字表达式将默认为基于聚合表达式的维度或度量值。

如果聚合表达式将产生一个度量值,则整个表达式将是一个度量值,例如每个客户的订单数。如果聚合表达式将产生一个维度(如字符串、布尔值或日期),则整个表达式将是一个维度,如 Second Purchase(第二次购买)。

LOD 表达式和筛选器

关键字还会影响 LOD 表达式根据操作筛选顺序进行计算的位置。Tableau 中有几种不同类型的筛选器,它们按如下顺序执行,从上到下。

如果你熟悉 SQL,可以将度量筛选器理解为相当于查询中的 HAVING 子句,将维度筛选器理解为相当于 WHERE 子句。

FIXED 计算在维度筛选器之前应用。实际上,在计算 FIXED 结果时,将忽略筛选器功能区上的任何筛选器(如果它不是上下文或数据级别筛选器)。这种做法对于 FIXED 可以如期正常计算是很有必要的。

例如,这里有一个视图,显示了按订单优先级划分的总运输成本的百分比,以及运输成本和利润的细分。

运输成本的百分比是通过取运输成本之和并除以表范围内的运输成本之和来计算的,如果对“Order Priority”(订单优先级)进行筛选,去掉了“中等优先级”,那么我们希望即使从视图中筛选掉了这些标记,百分比仍然是指所有订单优先级的总和。

如果 FIXED 的详细级别表达式(在本例中是表范围)是在Order Priority(订单优先级)维度之后计算的,那么我们就不能保留这个总数。

INCLUDE 和 EXCLUDE 详细级别表达式在维度筛选器之后和度量筛选器之前求值。

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

下节课,我将带你学习了解 LOD 表达式的聚合与复制。