使用表计算

您可以使用表计算轻松创建临时指标,这项功能类似于 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_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 天的总和),复制表格计算并进行修改会很有帮助。

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

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

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

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

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

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

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

修改表计算

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

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

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

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

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

删除表计算

如果您有权创建表格计算,则还可以删除您或其他用户创建的表格计算。删除表格计算后,该计算将从“探索”中消失,但不会从使用该计算的任何数据分析卡片或信息中心功能块中消失。此外,如果用户使用的是包含自定义字段的探索的网址,则仍会看到计算结果。

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

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

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

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

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

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

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

对表计算进行排序

如需按表格计算结果进行排序,请选择列顶部的字段名称,就像选择维度或指标一样。如需详细了解排序,请参阅创建和修改探索文档页面。

表计算无法排序时

按表计算排序的运作方式与在 Looker 中按维度或测量排序类似。不过,在某些情况下,存在两个重要区别会导致无法进行排序:

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

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

达到行数上限的计算

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

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

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

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

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

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

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

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

请注意,基础数据表包含维度“创建订单周数”和测量值“订单项总利润”,以及一个名为“占上周利润百分比”的表格计算,用于比较每周利润与上周利润:

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

为此,您可以创建一个表格计算项(即“超出上周利润”),用于评估“上周利润百分比”计算结果是否大于 1:

${percent_of_previous_week_profit} > 1

生成的表格将包含一个新的表格计算,该计算会根据超出上周利润计算对每行进行评估,并显示 YesNo,具体取决于前一周的百分比是否大于 1。

如需隐藏特定一周的收入未超过前一周收入的所有行,请选择“是/否”计算结果的数据表齿轮菜单,然后选择从可视化中隐藏“否”

生成的可视化结果现在只会显示收入高于前一周的周数。

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

  • 显示累计总计的数据表
  • 结果包含日期分析结束日期的部分日期
  • 计算上一行的百分比时

如需滤除包含 null 值的行,请使用 is_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) 键盘快捷键可清除所有表格计算,包括自定义字段。如需恢复表格计算,请选择浏览器上的返回箭头。您可能还需要重新运行查询。