使用表计算

表计算可让您轻松创建临时指标。它们类似于 Google 表格等电子表格工具中的公式。表格计算结果在数据表中显示为绿色列,而不是蓝色列(维度)或橙色列(测量值)。

下表中的最后一列使用表计算通过 concat 函数组合了数据中的三个字段。

数据表包含一个表格计算方法,该计算可将“Accidents Aircraft Category”、“Accidents Country”和“Accidents Count”列的值连接在一个列中。

表计算可以对查询中的维度、度量和其他表计算执行数学、逻辑(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 表达式编辑器:

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

如果您有权创建表计算,则可以使用字段选择器自定义字段部分打开创建表计算对话框。

如需使用自定义字段部分创建表计算,请按以下步骤操作:

  1. 在字段选择器的自定义字段部分,选择添加
  2. 选择 Table Calculation 打开创建表计算对话框。

然后,对于每个表的计算,请按以下步骤操作:

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

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

使用数据栏进行表格计算

除了使用字段选择器的自定义字段部分,您还可以从数据部分栏中选择添加计算按钮,打开创建表计算对话框。

如果启用了页内表计算实验室功能,系统会在探索页面的数据部分打开表计算表达式编辑器。请按照“使用页内表格计算”部分创建表格计算中的说明完成创建表格计算。

然后,对于每个表的计算,请按以下步骤操作:

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

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

使用页内表格计算创建和修改表格计算

如果页内表计算实验室功能已启用,并且您有权创建表计算,则系统会在探索页面的数据部分打开表计算表达式编辑器。通过在数据部分中创建和修改表计算,用户可以在创建和修改表达式时引用探索查询中的字段和值。

要使用页内表格计算功能创建和修改表格计算结果,请执行以下操作:

  1. 使用字段选择器的自定义字段部分中的添加按钮使用数据,打开表达式编辑器。

  2. 计算类型下拉菜单中选择计算类型,或者根据需要选择其他计算(如果您要修改表格的计算)。默认情况下,系统会显示自定义表达式选项。

  3. 添加计算定义,包括根据需要选择快捷方式计算的来源列。只有“探索”的数据表格中的数字字段才可用于除自定义表达式以外的计算类型。

    • 如果从计算下拉菜单中选择自定义表达式,请在大文本框中输入 Looker 表达式,以创建计算。您只能根据“探索”数据表格中的字段创建表格计算结果。Looker 表达式可以非常简单,也可以根据业务逻辑的要求使用任意数量的字段、函数和运算符。您创建的表达式可以是数字、日期、字符串(文本)或布尔值 (true/false)。
    • 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式以及编辑器如何为您提供帮助。
  4. 根据需要,在计算名称字段中输入新的计算名称,而不是默认名称。计算名称会显示在字段选择器和数据表中。

  5. 说明字段中添加说明(可选),或修改不超过 255 个字符的现有说明。说明可为其他用户提供有关表格计算的更多上下文或信息。

  6. 如果您要创建新的表格计算,请根据需要从格式下拉列表中选择非默认格式。如果您要修改现有的表格计算,请根据需要从格式下拉菜单中选择现有格式以外的格式。

  7. 选择保存。或者,选择取消以退出表达式编辑器,然后从舍弃未保存的更改?确认对话框中选择舍弃,确认您要放弃所有未保存的更改。

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

常用计算的快捷键

如果您有权创建和修改表计算,则可以对“探索”数据表中的特定数字字段执行快捷计算,包括其他表计算。

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

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

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

常用计算快捷键类型

有多种计算类型可通过快捷方式选项使用。下表列出了每种可用的计算及其说明、输入和 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())) 默认格式 累计行总计

通过字段的数据表格齿轮菜单使用常用计算的快捷键

如果您有权创建和修改表计算,则可以通过字段的数据表格齿轮菜单创建快捷计算,具体步骤如下:

  1. 选择数据表格中字段名称旁边的齿轮菜单。
  2. 选择计算以显示可用的计算类型。
  3. 选择计算类型

除非您透视“探索”结果,否则不会显示数据透视计算类型

新的计算结果将自动在数据表中显示为绿色列。

新的计算方法也会显示在字段选择器的自定义字段部分。

与其他字段一样,您可以选择计算名称,将计算添加到查询中或从查询中移除。您还可以将鼠标悬停在该字段上,以查看适用于相应计算的更多选项,包括修改计算。

通过“创建或修改表计算”对话框为常用计算使用快捷键

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

  1. 如果您要创建表计算,请打开创建表计算对话框;如果您要修改表计算,请打开修改表计算对话框。

    “修改表格计算”对话框会显示基于“库存项目计数”字段的上一行计算的百分比。

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

  3. 来源列下拉列表中选择要执行计算的字段。只有“探索”的数据表格中的数字字段可供选择。在此示例中,用户选择对“商品目录项数”计量单位执行“上一行的百分比值”计算。

  4. (可选)使用格式下拉菜单选择预定义的格式或为结果创建自定义格式。如果您要创建自定义格式,请按照为数字字段添加自定义格式文档页面中的说明,使用电子表格样式的格式。如果未做出选择,Looker 会使用默认格式。

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

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

  7. 创建完表格计算后,请选择保存,将计算添加到“探索”中。

新的计算结果将自动在数据表中显示为绿色列。

新的计算方法也会显示在字段选择器的自定义字段部分。

与其他字段一样,您可以选择计算名称,将计算添加到查询中或从查询中移除。您还可以将鼠标悬停在该字段上,以查看适用于相应计算的更多选项,包括修改计算。

复制表的计算结果

如果您有权创建表格计算,则还可以复制您或其他用户已创建的现有表格计算。如果您希望创建多个只有细微差别(例如,30 天、60 天或 90 天总和)的表格计算,则复制然后修改表格计算会很有帮助。

您可以通过以下方式复制表计算:

  • 在字段选择器的自定义字段部分中,使用计算的三点状更多菜单
  • 使用计算的数据表格齿轮菜单

如需复制表计算,请按以下步骤操作:

  1. 在字段选择器中,展开字段选择器的自定义字段部分。
  2. 选择要复制的表格计算公式对应的三点状更多菜单。
  3. 选择复制

或者,从计算的数据表格齿轮菜单中选择复制

复制的表格计算结果会显示在字段选择器的自定义字段部分中原始表格的后面,并使用原始表格计算的名称加上末尾的“复制”一词。

接下来,您可以修改复制的表的计算方法。

修改表计算

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

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

  • 在字段选择器的自定义字段部分中,使用计算的三点状更多菜单
  • 使用计算的数据表格齿轮菜单

如需修改表的计算,请按以下步骤操作:

  1. 展开字段选择器的自定义字段部分,或者从计算的数据表格齿轮菜单中选择修改计算,打开修改表格计算对话框。
  2. 选择要修改的表格计算旁边的三点状更多菜单。
  3. 选择修改以打开修改表计算对话框。
  4. 如果需要,请从计算下拉列表中选择新的计算类型
  5. 根据需要更改计算定义,包括快捷方式计算的“来源”列。只有“探索”的数据表格中的数字字段才可用于除自定义表达式以外的计算类型。
    • 如果从计算下拉菜单中选择自定义表达式,请在大文本框中添加 Looker 表达式或修改现有 Looker 表达式。您只能根据“探索”数据表格中的字段创建表格计算结果。
  6. 如果需要,请从格式下拉列表中选择一种新格式。
  7. 根据需要,在名称字段中输入新的计算名称。计算名称会显示在字段选择器和数据表中。如果您对表计算进行任何更改,请考虑修改名称以保持一致。
  8. 添加或更新可选字段说明(最多 255 个字符),并提供表计算的详细信息(包括其预期用途)。
    • 如果已有说明,系统会自动显示说明框。如果没有现有广告内容描述,请选择 + 添加广告内容描述,然后添加可选广告内容描述。
  9. 选择保存

删除表计算

如果您拥有创建表格计算的权限,则还可以删除您或其他用户创建的表格计算。当您删除表格计算后,相应计算便会从“探索”中消失,但不会从任何使用该计算的 Look 或信息中心图块中消失。此外,使用包含自定义字段的“探索”网址的任何用户也仍会看到计算结果。

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

  • 在字段选择器的自定义字段部分中,使用计算的三点状更多菜单
  • 使用计算的数据表格齿轮菜单

如需删除表计算,请按以下步骤操作:

  1. 展开字段选择器的自定义字段部分。
  2. 选择要删除的表格计算旁边的三点状更多菜单。
  3. 选择删除

或者,从表格计算的数据表格齿轮菜单中选择删除

您还可以使用键盘快捷键 Command-K (Mac) 或 Ctrl+K (Windows) 来删除“探索”查询中的表格计算值并清除字段。

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

排序表计算

若要对表格计算进行排序,请选择列顶部的字段名称,这与维度或测量一样。如需详细了解如何排序,请参阅创建和修改探索文档页面。

无法对表计算进行排序

表格排序的计算方法与 Looker 中的维度或测量排序类似。但在某些情况下,有两个重要区别会阻止排序:

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

无法对表的计算进行排序的具体场景包括:

计算达到行数上限

如果查询中的行数超出您设置的行数上限,您将无法对表计算进行排序。这是因为表格计算仅基于所显示的行。因此,如果您达到行数上限,则表计算可能会遗漏一些应该在结果中排序的行。如果遇到此问题,您可以尝试提高行数上限(最多 5,000 行)。

当结果达到行数上限时,Looker 会在数据表顶部的黄色栏中显示文本已达到行数上限:结果可能不完整,从而向您发出警告。

如果出现这种情况,您可以尝试按非表格计算字段对数据表格进行排序。

对表的计算结果进行排序后,对维度或测量值进行排序

如本页达到行数上限的计算部分所述,表格计算仅基于显示的行数。相比之下,按维度或度量排序会返回到数据库,以确保可以找到正确的行。因此,您应该从维度和测量值开始排序。然后,当从数据库返回正确的数据时,您可以根据表的计算结果对这些结果进行排序。

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

就像 LookML 定义的维度和测量一样,表计算也会自动显示在可视化图表中。

此外,您还可以使用表格计算来确定在可视化图表中显示数据的哪些行。下面的示例将用于探索此功能;此示例包含有关配件类别的每周销售信息。

请注意,基础数据表包含维度“创建订单数周”和衡量“订单商品总利润”,以及名为“上周利润百分比”(将每周与前一周的利润进行比较)的计算方法:

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

为达到此结果,您可以创建一个“超出上周利润”表计算公式,用于评估“上一周利润百分比”计算结果是否大于 1:

${percent_of_previous_week_profit} > 1

生成的表格将包含一个新的表格计算方法,根据超出上周利润这一计算结果计算每一行,并显示,具体取决于前一个数据的百分比是否大于 1。

要隐藏特定周的收入未超过前一周收入的所有行,请选择 true 或 false 计算的数据表格齿轮菜单,然后选择在可视化图表中隐藏“否”

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

此功能的一个常见用例是隐藏可视化图表中的第一行或最后一行,因为许多类型的分析都会创建在表开头或末尾包含 null 值的行:

  • 显示运行总计的数据表
  • 日期分析不满一天的结果
  • 在计算上一行的百分比

如需过滤掉包含 null 值的行,请使用 is_null 逻辑函数创建新的表计算:

NOT is_null(${percent_of_previous_week_sales})

然后,在表格计算的数据表格齿轮菜单中选择在可视化图表中隐藏“否”,以隐藏该行。

使用表计算的注意事项

  • 您在表计算中使用的所有字段都必须包含在初始查询中。
  • 公式必须小写。“ROUND”将无法运行,但“round”可以运行。
  • 表计算仅对查询中返回的行进行。如果行数上限为 500,则不考虑第 501 行。
  • 如果您向数据表添加 Total 行,某些执行汇总的表计算结果不一定符合预期,例如使用 percentilemedian 的计算结果。这是因为,表格计算使用“总计”行中的值(而非数据列中的值)来计算总计值。有关问题排查提示,请参阅将可能造成混淆的表格计算总数显示为 null 的“最佳做法”页面。
  • 对于小于 1 的小数,始终使用前导零。例如,0.95 是有效的,而 .95 则会导致错误。
  • 使用 Command-K (Mac) 或 Ctrl+K (Windows) 键盘快捷键将清除所有表格计算,包括自定义字段。要恢复您的表格计算结果,请选择浏览器上的返回箭头。您可能还需要重新运行查询。