使用表计算

通过表格计算可以轻松创建临时指标。它们与 Excel 等电子表格工具中的公式类似。表格的计算在数据表中显示为绿色列,而不是蓝色列(维度)或橙色列(量度)。

下表中的最后一列使用 concat 函数,通过表格进行计算来合并数据中的三个字段。

表计算可以对查询中的维度、测量值和其他表计算执行数学、逻辑(true/false)、词法(文本)和基于日期的计算。您执行这些计算时使用的公式称为 Looker 表达式 (Lexp)

表计算不同于 LookML 定义的字段和自定义字段

表计算与 LookML 中定义的 LookML 定义的字段之间存在一些差异:

  • 借助表计算,具有相应权限的任何用户都可以创建基于 LookML 定义的字段的计算,而不能创建创建 LookML 定义的字段,而这需要用户具有“开发”权限并了解 LookML。
  • 与 LookML 定义的字段或自定义字段相比,表在运行查询后会对结果执行操作,而这些字段是查询的一部分,用于对数据库运行。换言之,您需要先选择一组维度和衡量指标,然后照常生成报表,然后再根据该报告中的数据计算表格。
  • 虽然与 LookML 定义的字段相比,表的计算过程更简单、更便捷,但是它们的控制难度不如 LookML 定义的字段。由于任何用户都可以创建表计算,因此它们可能不是“官方”计算。在 LookML 定义的字段和表计算之间,请做出这种权衡,因为 Looker 利用 LookML 来维护单一可信来源。

表计算和自定义字段之间存在一些差异:

  • 自定义字段会生成针对数据库运行的 SQL,类似于 LookML 定义的字段。表计算在查询后执行,不会针对数据库运行。
  • 表的计算取决于数据表中的数据,而自定义字段并非如此。

表格计算字段会显示在表格中的维度和度量值旁边。如果日后想重复使用您的表格计算,请务必将“探索”功能另存为 Look信息中心图块

创建表计算

要允许用户或群组创建表计算,您的 Looker 管理员必须向这些用户或群组授予 create_table_calculations 权限,让他们能够访问该功能。

Looker 的“探索”页面具有内置的 Looker 表达式编辑器,可帮助您创建表计算、自定义字段和自定义过滤器。如果您是 Looker 开发者,并且正在创建数据测试来验证模型的逻辑,则还可以使用 Looker 表达式编辑器构建 Looker 表达式,然后将该表达式复制到数据测试的 expression 参数中。

您可以通过“探索”页面使用 Looker 表达式编辑器的两种方法:

使用字段选择器的“自定义字段”部分创建表计算

如果您的 Looker 实例已启用自定义字段,并且您具有创建表计算的权限,则可以使用字段选择器自定义字段部分来打开修改表计算弹出式窗口:

  1. 打开字段选择器的自定义字段部分。
  2. 选择添加
  3. 选择表计算,打开修改表计算弹出式窗口。

然后,对于每个表计算:

  1. 计算下拉菜单中选择计算类型。默认情况下,系统会显示自定义表达式的选项。
  2. 根据需要添加计算定义,包括选择快捷方式计算来源列。只有“探索”数据表中显示的数字字段可用于计算方式(自定义表达式除外)。
    • 如果从计算下拉列表中选择了自定义表达式,请在大文本框中输入 Looker 表达式以创建计算。您只能根据“探索”数据表中显示的字段创建表计算。Looker 表达式可以很简单;也可以根据业务逻辑的要求使用任意数量的字段、函数和运算符。您创建的表达式的计算结果可以是数字、日期、字符串(文本)或布尔值(真/假)。
    • 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式以及编辑器如何为您提供帮助。
  3. 如果需要,可从格式下拉列表中选择非默认格式。
  4. 根据需要在名称字段中输入新的计算名称,而不是默认名称。计算名称将显示在字段选择器和数据表中。
  5. 选择 + 添加说明可添加最多 255 个字符的可选说明,以便向其他用户提供更多关于表格计算的背景信息或信息。
  6. 选择保存

新计算会自动显示在数据表格和字段选择器的自定义字段部分中。与其他字段一样,您可以选择计算名称以在查询中添加或移除计算。您还可以将鼠标悬停在该字段上,查看适用于该计算的更多选项

使用数据栏创建表计算

如果没有为自定义字段启用 Looker 实例,从数据栏中选择添加计算按钮是创建表计算的唯一方式:

然后,对于每个表计算:

  1. 计算下拉菜单中选择计算类型。默认情况下,系统会显示自定义表达式的选项。
  2. 根据需要添加计算定义,包括选择快捷方式计算来源列。只有“探索”数据表中显示的数字字段可用于计算方式(自定义表达式除外)。
    • 如果从计算下拉列表中选择了自定义表达式,请在大文本框中输入 Looker 表达式以创建计算。您只能根据“探索”数据表中显示的字段创建表计算。Looker 表达式可以很简单;也可以根据业务逻辑的要求使用任意数量的字段、函数和运算符。您创建的表达式的计算结果可以是数字、日期、字符串(文本)或布尔值(真/假)。
    • 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式以及编辑器如何为您提供帮助。
  3. 如果需要,可从格式下拉列表中选择非默认格式。
  4. 根据需要在名称字段中输入新的计算名称,而不是默认名称。计算名称将显示在字段选择器和数据表中。
  5. 选择 + 添加说明可添加最多 255 个字符的可选说明,以便向其他用户提供更多关于表格计算的背景信息或信息。
  6. 选择保存

如果为自定义字段启用了实例,新计算会自动显示在数据表和字段选择器的自定义字段部分中。与其他字段一样,您可以选择计算名称以在查询中添加或移除计算。您还可以将鼠标悬停在该字段上,查看适用于该计算的更多选项

常见计算快捷键

如果您拥有创建和修改表格计算的权限,则可以对“探索”的数据表中的特定数字字段执行快捷方式计算,包括计算其他表格。如果为自定义字段启用了实例,则无法对自定义字段创建快捷方式计算。

您可以通过以下任一方式执行快捷方式计算:

第二种方法可让您在创建表时自定义计算结果,例如重命名、添加可选说明或选择默认格式。

以下部分介绍了可用的计算选项类型。

常见的计算快捷方式类型

我们提供了几种计算选项作为快捷方式选项。下表列出了每项可用计算及其说明、输入和 Looker 表达式 (Lexp),以及计算的默认值格式和默认名称。您可以通过修改计算结果来指定不同的名称或值格式。

如需了解仅适用于透视结果的常见计算快捷方式,请参阅本页面中常见的数据透视计算快捷方式表格。

计算方式 说明 输入 Lexp 表达式 格式 名称
% 的列 行值除以列中值的总和。在达到行数上限后,这种计算结果只会包含数据表格中的值。 field_1 field_1/sum(field_1) %(小数点后 0 位) view_name field_name 所占的百分比
上一行的百分比 当前行的值除以以下行的值。 field_1 field_1/offset(field_1, 1) %(小数点后 0 位) 前一百分比 - view_name field_name
与前一行相比的变化百分比 当前行值与下方行的值之差除以以下行的值。 field_1 field_1/offset(field_1, 1) - 1 %(小数点后 0 位) 与之前相比的百分比变化 - view_name field_name
运行中的列总计 列中当前行与之前所有行值的累计总和。 field_1 running_total(field_1) 默认格式 总运行时长:view_name field_name
列的排序 行值在列中所有值的排名。在达到行数上限后,这种计算结果只会包含数据表格中的值。 field_1 rank(field_1,field_1) 默认格式 view_name排名field_name

在“探索”结果透视结果后,我们提供适用于透视指标的更常用的计算快捷方式。

下表列出了每项可用计算及其说明、输入和 Looker 表达式 (Lexp),以及计算的默认值格式和默认名称。您可以通过修改计算结果来指定不同的名称或值格式。

计算方式 说明 输入 Lexp 表达式 格式 名称
上一列的百分比 对于透视字段,用当前列的值除以其左侧的列值。 field_1 field_1 / pivot_offset(field_1, -1) %(小数点后 0 位) 上一view_name列的百分比field_name
与上一列相比的百分比变化 对于透视字段,用当前列值与左侧列的值之差除以左侧的列值。 field_1 (field_1/pivot_offset(field_1, -1)) - 1 %(小数点后 0 位) 与上一列中的view_name相比的百分比变化field_name
行的 % 对于透视字段,用当前列的值除以该字段的行总和。 field_1 field_1/sum(pivot_row(field_1)) %(小数点后 0 位) 行数百分比
总行数 对于透视字段,当前列与此行之前所有列的累计总和。 field_1 sum(pivot_offset_list(field_1,
-1*pivot_column()
+1,pivot_column()))
默认格式 总行数

使用字段的数据表齿轮菜单使用快捷方式进行常用计算

如果您的 Looker 实例已启用自定义字段,并且您有权创建和修改表计算,则可以按照以下步骤在字段的数据表齿轮菜单中创建快捷方式计算:

  1. 选择数据表格中相应字段旁边的齿轮菜单。在此示例中,用户选择对“Inventory Items Count”衡量方式进行计算,然后选择该字段的齿轮菜单。
  2. 选择计算以显示可用的计算类型。
  3. 选择计算类型。以下示例使用上一行的百分比与上一个月的商品目录项数进行比较。

除非对探索结果进行数据透视,否则数据透视计算类型不会显示。

新计算会自动显示在数据表格中:

新计算也会显示在字段选择器的自定义字段部分。与其他字段一样,您可以选择计算名称以在查询中添加或移除计算。您还可以将鼠标悬停在该字段上,查看适用于该计算的更多选项,包括修改计算。

使用“修改表格计算”弹出式窗口,使用快捷键进行常用计算

通过这种方法,您可以选择非默认格式或名称,或者在创建计算时添加说明。

  1. 打开修改计算公式弹出式窗口。

  2. 计算下拉菜单中选择计算类型。此示例使用上一行的百分比与上个目录项的数量进行比较。

  3. 源列下拉列表中选择要计算的字段。只有数据探索表中显示的数字字段可供选择。在此示例中,用户选择对“广告资源项数”指标执行“上一行的百分比计算”。

  4. (可选)使用格式下拉菜单选择预定义的格式,或为结果创建自定义格式。如果您创建自定义格式,请使用 Excel 样式的格式(如向数字字段添加自定义格式文档中所述)。如果未做出选择,Looker 将使用默认格式。

  5. 如有必要,请使用名称字段中的默认名称重命名您的计算表。计算名称将显示在字段选择器和数据表中。

  6. 选择 + 添加说明可添加最多 255 个字符的可选说明,以便向其他用户提供更多关于表格计算的背景信息或信息。

  7. 完成表格计算后,选择保存即可将计算结果添加到“探索”中。

新计算会自动显示在数据表格中:

如果为自定义字段启用了实例,新计算也会显示在字段选择器的自定义字段部分。与其他字段一样,您可以选择计算名称以在查询中添加或移除计算。您还可以将鼠标悬停在该字段上,查看适用于该计算的更多选项,包括修改计算。

复制表计算

如果您拥有创建表计算的权限,则还可以复制自己或其他用户创建的现有表计算。如果您想仅创建细微差别(例如 30 天、60 天或 90 天的数据)的多个表格计算,那么复制并修改表格会非常有用。

您可以通过以下几种方式复制表计算结果:

使用字段选择器三点状选项菜单复制计算

如果您为实例启用了自定义字段实验室功能,并且系统允许您创建和修改表格计算结果,则您可以使用字段选择器三点选项菜单来复制表格计算结果。此外,您还可以使用“探索”数据表格中的使用字段齿轮菜单的方法

如需使用字段选择器复制表计算,请执行以下操作:

  1. 在字段选择器中,展开自定义字段部分。
  2. 为您要复制的表计算选择三点选项菜单
  3. 选择复制

重复的表格计算会显示在原始表格的下方,使用的是原始表格计算的名称加上“复制”字样:

接下来,您可以修改重复的表计算。

使用数据表格齿轮菜单复制计算

您也可以从计算的数据表齿轮菜单中选择复制来复制计算:

如果您的实例启用自定义字段,那么只有这样才能复制计算结果。

对于启用了自定义字段的实例,复制的表格计算会显示在原始表格的下方,还会使用原始表格计算的名称加上末尾的“复制”一词:

接下来,您可以修改重复的表计算。

修改表计算

如果您拥有创建表计算的权限,则还可以修改自己或其他用户创建的现有表计算。

您可以通过以下几种方式修改表计算结果:

使用字段选择器三点状选项菜单修改计算

如果您的 Looker 实例已启用自定义字段,并且您能够创建表计算,则可以使用字段选择器来修改表计算。此外,您还可以使用“探索”数据表格中的使用字段齿轮菜单的方法

如需使用字段选择器修改表计算结果,请执行以下操作:

  1. 展开自定义字段部分。
  2. 选择要修改的表格计算对应的三点状选项菜单
  3. 选择修改以打开修改表格计算弹出式窗口。

  4. 如果需要,从计算下拉菜单中选择新的计算类型

  5. 根据需要更改计算定义,包括快捷方式的计算来源列。只有“探索”数据表格中显示的数字字段可用于自定义表达式之外的其他计算类型。

    • 如果从计算下拉列表中选择自定义表达式,请在大型文本框中添加 Looker 表达式,或修改现有 Looker 表达式。您只能根据“探索”数据表中显示的字段创建表计算。
  6. 如果需要,可从格式下拉列表中选择新格式。

  7. 根据需要在名称字段中输入新的计算名称。计算名称将显示在字段选择器和数据表中。如果您在计算表格时更改了任何内容,请考虑修改该名称,使之保持一致。

  8. 添加或更新可选字段说明(最多 255 个字符),并提供关于表格计算的详细信息(包括其预期用途)。

    • 如果您已有广告内容描述,系统会自动显示广告内容描述框。如果尚无广告内容描述,请选择 + 添加广告内容描述以添加说明(可选)。
  9. 选择保存

使用数据表格齿轮菜单修改计算

如果您的 Looker 实例已启用自定义字段,并且您有权创建表计算,则您还可以使用计算的数据表齿轮菜单修改计算:

  1. 从字段的齿轮菜单中选择修改计算,打开修改表格计算弹出式窗口。

  2. 如果需要,从计算下拉菜单中选择新的计算类型

  3. 根据需要更改计算定义,包括快捷方式的计算来源列。只有“探索”数据表格中显示的数字字段可用于自定义表达式之外的其他计算类型。

    • 如果从计算下拉列表中选择自定义表达式,请在大型文本框中添加 Looker 表达式,或修改现有 Looker 表达式。您只能根据“探索”数据表中显示的字段创建表计算。
  4. 如果需要,可从格式下拉列表中选择新格式。

  5. 根据需要在名称字段中输入新的计算名称。计算名称将显示在字段选择器和数据表中。如果您在计算表格时更改了任何内容,请考虑修改该名称,使之保持一致。

  6. 添加或更新可选字段说明(最多 255 个字符),并提供关于表格计算的详细信息(包括其预期用途)。

    • 如果您已有广告内容描述,系统会自动显示广告内容描述框。如果尚无广告内容描述,请选择 + 添加广告内容描述以添加说明(可选)。
  7. 选择保存

删除表计算

如果您拥有创建表计算的权限,则也可以删除自己或其他用户创建的表计算。删除某个表格计算后,它会从“探索”中消失,但不会从任何使用该计算的 Looks 或信息中心图块中删除。此外,使用具有自定义字段的“探索”网址的任何人仍然可以看到计算结果。

您可以通过以下几种方式删除表计算结果:

使用字段选择器三点状选项菜单删除计算

如果您的 Looker 实例已启用自定义字段,并且您可以创建表计算,则可以使用字段选择器删除表计算。此外,您还可以使用“探索”数据表格中的使用字段齿轮菜单的方法

如需使用字段选择器删除表计算结果,请执行以下操作:

  1. 展开自定义字段部分。
  2. 选择您要删除的表格计算对应的三点状选项菜单
  3. 选择删除

您也可以使用键盘快捷键 Command-K(适用于 Mac)或 Ctrl+K(适用于 Windows)删除自定义字段。

通过选择浏览器上的返回箭头,您可以恢复已删除的自定义字段。

使用数据表齿轮菜单删除计算

您也可以从计算的数据表齿轮菜单中选择删除来删除计算:

如果实例未启用自定义字段,这是删除表计算的唯一方法。

您也可以使用键盘快捷键 Command-K(适用于 Mac)或 Ctrl+K(适用于 Windows)删除自定义字段。

通过选择浏览器上的返回箭头,您可以恢复已删除的自定义字段。

对表格计算进行排序

要对表格计算结果进行排序,请选择列顶部的字段名称,就像处理维度或衡量指标一样。

表计算无法排序的情况

对表格计算进行排序的工作原理与在 Looker 中对维度或测量值进行排序类似。不过,在某些情况下,由于存在两个重要区别,导致无法排序:

  • 从数据库检索数据后会创建表计算,这意味着在对表计算进行排序时,您只能对已显示的数据进行排序。
  • 某些表格计算会应用于同一列中的多个行,例如使用 offset() 函数时(如需了解详情,请参阅 Looker 帮助中心内的使用 offsetpivot_offset 函数)。在这些情况下,对表格计算进行排序会改变其结果,因此会被停用。

在下列情况下,您无法对表格计算进行排序:

达到行数上限的计算结果

如果查询中的行数超过您设置的行数上限,您将无法对表格计算进行排序。这是因为表格的计算仅基于显示的行。因此,如果达到行数上限,表计算中可能缺少一些本应进行排序到结果中的行。如果您遇到此问题,可以尝试提高行数上限(最多 5000 行)。

例如,下表显示了某个电子商务商店中的 10 个畅销类别,并按总销售额排序。请注意,已经达到 10 行的上限,您会在表格顶部的黄色栏中收到警告:

不过,如果您想改为按订单数量显示前 10 个类别,结果将如下所示:

对表格计算结果进行排序后,可对维度或指标进行排序

如本页面的达到行数上限的计算部分所述,表的计算仅基于显示的行。相反,按维度或测量单位排序将返回到您的数据库,以确保找到正确的行。因此,您应该先从维度和衡量标准开始排序。然后,在数据库返回正确的数据后,您可以根据表格的计算结果对这些结果进行排序。

无法对使用偏移函数的计算进行排序

任何使用偏移的表计算无法排序,因为行的排序顺序会更改偏移量的结果。

例如,以下表格计算的是配件类别的每周销售百分比变化:

只有在按周对结果进行排序时,这样才有意义。

在可视化图表中使用表计算

与 LookML 定义的维度和度量方式一样,表计算会自动显示在可视化图表中。

此外,您还可以使用表格计算来确定应在可视化图表中显示的数据。以下示例将用于探索此功能;此示例包含有关配件类别的每周销售信息。请注意,底层数据表包含“每周创建的订单数”维度和“总售价”指标,此外还有一个名为“上周销售百分比”的表格,用于将每周的收入与前一周的销售进行比较:

您现在可以阻止某些数据在柱形图中显示。为此,您需要创建计算结果为 true 或 false 的表格计算,然后隐藏 false 值(在您的数据表中显示为“否”条目)。您不应期望公式的结果是“word”“true”或“false”,而应将其设为“true”或“false”。

为此,您可以创建一个表计算“超出上周销售额”,用于评估“上周销售百分比”计算是否大于 1:

${percent_of_previous_week_sales} > 1

这会生成一个包含一个新表格计算的表格,该表格的计算会对照超过先前销售额计算,并显示(具体取决于前一个百分比是否大于 1):

若要隐藏特定周的收入未超过前一周的收入的所有行,请选择逻辑计算的齿轮图标,然后选择在可视化图表中隐藏“否”

现在,生成的可视化图表仅显示超过前一周收入的周数:

此功能的一个常见用例是,在可视化图表中隐藏第一行或最后一行,因为许多类型的分析会在表格的开头或末尾创建不良行。例如,在计算运行的总计值时、在某天结束日期分析时,您可能会决定隐藏第一行或最后一行;或者,在您计算上一行的百分比时,如下例所示:

要移除该行,只需使用 is_null 逻辑函数创建新的表计算,以过滤掉 null 值:

NOT is_null(${percent_of_previous_week_sales})

然后,从表格的数据表格齿轮图标中选择在可视化图表中隐藏“否”即可隐藏该行。

使用表计算的注意事项

  • 您在表计算中使用的所有字段都必须是初始查询的一部分。
  • 公式必须使用小写字母。无法使用ROUND,但可以使用round
  • 表格计算只会针对查询中返回的行进行。如果行数上限为 500,则不会考虑第 501 行。
  • 如果您在数据表格中添加了总计行,则执行汇总操作的一些表格计算结果(例如使用 percentilemedian 的计算结果)可能不会如预期那样相加。这是因为表格计算使用“总计”行中的值(而不是数据列中的值)来计算总计值。如需获取问题排查提示,请参阅帮助中心文章:将可能的表格计算总数显示为 null
  • 对于小于 1 的小数,一定要使用前导零。例如,0.95 可行,但 .95 会导致错误。
  • 使用 Command-K (Mac) 或 Ctrl+K (Windows) 键盘快捷键将清除所有表格计算结果,包括自定义字段。要恢复表格计算,请选择浏览器上的返回箭头。您可能还需要重新运行查询。