Tableau 的计算类型

  • 基本计算:基本计算允许您在数据源详细信息级别(行级别计算)或可视化项详细信息级别(聚合计算)转换值或成员。
    • 聚合计算 - 聚合函数
    • 数据源计算 - 公式计算(行级别)
  • 表计算:表计算仅允许您在可视化项详细信息级别转换值。
    • 参考线使用的是表计算。
  • 详细级别表达式 LOD:就像基本计算一样,LOD 计算允许您在数据源级别和可视化项级别计算值。但是,LOD 计算可以让您更好地控制要计算的粒度级别。就可视化项粒度而言,它们可以在较高粒度级别(包括)、较低粒度级别(排除)或完全独立级别(固定)执行。

计算发生的位置

  • 基本计算字段 & 详细级别表达式:作为查询的一部分在后台数据源 / 数据库计算。数据库层面。
  • 表计算:在查询返回的结果集上再次计算。Tableau 层。

image.png

该如何选择最佳的计算公式来解答不同的业务问题?

  • 没有一个最终武器,通常是看具体情况。
  • 视图的具体样式也是一个重要的决定因素。
  • 有些场景可能有多种解法。
  • 通常需要在性能、灵活性和实现的难易度上进行权限。

基本计算 vs. 表计算

布局会影响计算类型的选择。
image.png

  • 数据量特别巨大的时候,使用表计算速度更快。
    • Tableau 查询数据库,返回 24 条数据,每个月一条数据,再在 Tableau 上进行计算。
  • 基本计算,需要按行判断,速度自然慢了。
  • 表计算 vs 基本计算
    • 表计算:简单,无需写公式;快速,基于报表显示的数据进行计算。
    • 基本计算表达式:如果有特定的格式化的要求(通常是为了数字表格),基本计算字段可以解决这类问题。

      基本计算 vs. 详细级别表达式

      LOD 计算的原理:
      image.png
      image.png
      image.png
      如果计算订单销售额的平均值呢?:不一定需要 LOD 的情况。
      可以将公式里的 median 替换为 avg
      也可以按照 sum( [销售额] ) / count( DISTINCT [订单ID] ) 进行计算
      哪一个更快呢?
      基本计算。因为 LOD 会生成子查询。

基本计算 vs 详细级别表达式

基本计算:高效。简单的聚合计算通常都比较快速。
详细级别表达式:容易把计算方式从平均值修改为中位数、最大值、最小值等。

详细级别表达式 vs 表计算

见 tableau 文件(which is lost)

一些只有表计算才适用的场景

  • 排名
  • 递归(比如累计汇总)
  • 移动平均
  • 行间计算(比如期间对比计算)

因为表计算可以分为一个分区输出多个值,而LOD 和详细级别表达式只能分为一个分区/组输出单个值。

image.png

Tableau 中的计算顺序

image.png