使用表计算

您可以使用表计算轻松创建临时指标,这项功能类似于 Google 表格等电子表格工具中的公式。表计算在数据表中显示为绿色列,而不是蓝色列(维度)或橙色列(测量)。

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

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

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

表计算与 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. 选择表计算以打开创建表计算对话框。

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

  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_namefield_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 天总和)的表格计算,则复制然后修改表格计算会很有帮助。

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

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

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

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

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

重复的表格计算会显示在字段选择器的自定义字段部分的原始表格计算后面,其名称为原始表格计算的名称,末尾附加“副本”一词。

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

修改表计算

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

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

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

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

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

删除表计算

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

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

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

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

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

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

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

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

排序表计算

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

表计算无法排序时

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

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

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

计算达到行数上限

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

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

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

对表计算进行排序后对维度或测量进行排序

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

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

与 LookML 定义的维度和指标一样,表计算结果也会自动显示在可视化图表中。

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

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

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

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

${percent_of_previous_week_profit} > 1

生成的表格将包含一个新的表格计算,该计算会根据 Exceeds Previous Week Profit 计算对每行进行评估,并显示 YesNo,具体取决于前一周的百分比是否大于 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) 键盘快捷键将清除所有表格计算,包括自定义字段。要恢复您的表格计算结果,请选择浏览器上的返回箭头。您可能还需要重新运行查询。