您可以使用表计算轻松创建临时指标,它们类似于 Google 表格等电子表格工具中的公式。表计算在数据表中显示为绿色列,而不是蓝色列(维度)或橙色列(测量)。
下表中的最后一列使用表计算,通过 concat
函数将数据中的三个字段合并在一起。
表计算可以针对维度、测量和查询中的其他表计算执行数学、逻辑(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 表达式编辑器:
使用字段选择器“自定义字段”部分中的“添加”按钮创建表计算
如果您拥有创建表格计算的权限,则可以使用字段选择器的自定义字段部分打开创建表格计算对话框。
如需使用自定义字段部分创建表格计算,请按以下步骤操作:
- 在字段选择器的自定义字段部分中,选择添加。
选择表计算,打开创建表计算对话框。
- 如果启用了 In-page Table Calculations Labs 功能,表计算表达式编辑器将在探索页面的数据部分中打开。按照使用“页面内表格计算”部分创建表格计算中的说明完成表格计算的创建。
然后,针对每个表计算,按以下步骤操作:
- 从计算下拉菜单中选择计算类型。系统默认显示自定义表达式的选项。
- 根据需要添加计算定义,包括选择快捷计算的来源列。只有探索中的数据表中显示的数字字段才符合条件,可用于除自定义表达式之外的计算类型。
- 如果从计算下拉菜单中选择自定义表达式,请在大文本框中输入 Looker 表达式以创建计算。您只能基于探索中的数据表中显示的字段创建表计算。您可以创建简单的 Looker 表达式,也可以根据您的业务逻辑需求使用多个字段、函数和运算符。您创建的表达式的计算结果可以是数字、日期、字符串(文本)或布尔值 (true/false)。
- 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式,以及编辑器如何提供帮助。
- 如果需要,可从格式下拉菜单中选择除默认格式以外的其他格式。
- 根据需要,在名称字段中输入除默认名称以外的新计算名称。计算名称会显示在字段选择器和数据表格中。
- 选择 + 添加说明,添加可选的说明(最多 255 个字符),以便为其他用户提供有关该表计算的更多背景信息或信息。
- 选择保存。
新计算结果会自动显示在数据表格和字段选择器的自定义字段部分中。与其他字段一样,您可以选择计算的名称,以将其添加到查询中或从查询中移除。您还可以将鼠标悬停在该字段上,以显示可用于相应计算的更多选项。
使用“数据”栏创建表计算
除了使用字段选择器的自定义字段部分之外,您还可以通过从数据部分栏中选择添加计算按钮来打开创建表格计算对话框。
如果启用了 In-page Table Calculations Labs 功能,表计算表达式编辑器将在探索页面的数据部分中打开。按照使用“页面内表格计算”部分创建表格计算中的说明完成表格计算的创建。
然后,针对每个表计算,按以下步骤操作:
- 从计算下拉菜单中选择计算类型。系统默认显示自定义表达式的选项。
- 根据需要添加计算定义,包括选择快捷计算的来源列。只有探索中的数据表中显示的数字字段才符合条件,可用于除自定义表达式之外的计算类型。
- 如果从计算下拉菜单中选择自定义表达式,请在大文本框中输入 Looker 表达式以创建计算。您只能基于探索中的数据表中显示的字段创建表计算。您可以创建简单的 Looker 表达式,也可以根据您的业务逻辑需求使用多个字段、函数和运算符。您创建的表达式的计算结果可以是数字、日期、字符串(文本)或布尔值 (true/false)。
- 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式,以及编辑器如何提供帮助。
- 如果需要,可从格式下拉菜单中选择除默认格式以外的其他格式。
- 根据需要,在名称字段中输入除默认名称以外的新计算名称。计算名称会显示在字段选择器和数据表格中。
- 选择 + 添加说明,添加可选的说明(最多 255 个字符),以便为其他用户提供有关该表计算的更多背景信息或信息。
- 选择保存。
新计算结果会自动显示在数据表格和字段选择器的自定义字段部分中。与其他字段一样,您可以选择计算的名称,以将其添加到查询中或从查询中移除。您还可以将鼠标悬停在该字段上,以显示可用于相应计算的更多选项。
使用网页内表计算创建和修改表计算
如果启用了页面内表格计算实验室功能,并且您拥有创建表格计算的权限,则表格计算表达式编辑器将在探索页面的数据部分中打开。在数据部分中创建和修改表格计算功能可让用户在创建和修改表达式时引用探索查询中的字段和值。
如需使用页面内表计算功能创建和修改表计算,请执行以下操作:
通过以下方式打开表达式编辑器:使用字段选择器的自定义字段部分中的添加按钮,或使用数据栏。
根据需要添加计算定义,包括选择快捷计算的来源列。只有探索中的数据表中显示的数字字段才能使用除自定义表达式之外的计算类型。
- 如果从计算下拉菜单中选择自定义表达式,请在大文本框中输入 Looker 表达式以创建计算。您只能基于探索中的数据表中显示的字段创建表计算。您可以创建简单的 Looker 表达式,也可以根据您的业务逻辑需求使用多个字段、函数和运算符。您创建的表达式的计算结果可以是数字、日期、字符串(文本)或布尔值 (true/false)。
- 创建 Looker 表达式文档页面介绍了如何创建 Looker 表达式,以及编辑器如何提供帮助。
根据需要,在计算名称字段中输入除默认名称以外的新计算名称。计算名称会显示在字段选择器和数据表格中。
在说明字段中,添加可选说明或修改现有说明,最多可输入 255 个字符。说明可以为其他用户提供有关表格计算的更多背景信息或信息。
如果您要创建新的表格计算,请根据需要从格式下拉菜单中选择除默认格式之外的格式。如果您要修改现有表格计算,可以根据需要从格式下拉菜单中选择除现有格式以外的格式。
选择保存。或者,选择取消退出表达式编辑器,然后在舍弃未保存的更改?确认对话框中选择舍弃,确认您要舍弃所有未保存的更改。
新计算结果会自动显示在数据表格和字段选择器的自定义字段部分中。与其他字段一样,您可以选择计算的名称,以将其添加到查询中或从查询中移除。您还可以将鼠标悬停在该字段上,以显示可用于相应计算的更多选项。
常用计算的快捷方式
如果您拥有创建和修改表计算的权限,则可以对探索的数据表中的某些数字字段(包括其他表计算)执行快捷计算。
您可以通过以下任一方式执行快捷计算:
第二种方法允许您在创建表格计算时对其进行自定义,例如重命名、添加可选说明或选择非默认格式。
以下部分介绍了可用的计算选项类型。
常见计算快捷方式的类型
您可以选择多种类型的计算作为快捷选项。下表列出了每种可用的计算及其说明、输入和 Looker 表达式 (Lexp),以及计算的默认值格式和默认名称。您可以修改计算,以指定其他名称或值格式。
如需了解仅适用于透视结果的常见计算快捷方式,请参阅本页中的常见透视计算快捷方式表格。
计算 | 说明 | 输入 | Lexp 表达式 | 格式 | 名称 |
---|---|---|---|---|---|
占列的百分比占列的百分比 |
行值除以相应列中各值之和。当达到行数上限时,此计算仅包含数据表中的值。 |
field_1
|
field_1/sum(field_1)
|
%(不含小数位) |
view_name field_name 所占百分比
|
与上一行相比的百分值与上一行相比的百分值 |
当前行的值除以下一行的值。 |
field_1
|
field_1/offset(field_1, 1)
|
%(不含小数位) |
与前一个相比的百分比 - view_name field_name
|
与上一行相比变化的百分比与上一行相比变化的百分比 |
当前行的值与下一行的值之差除以下一行的值。 |
field_1
|
field_1/offset(field_1, 1) - 1
|
%(不含小数位) |
与前一个相比变化的百分比 - 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),以及计算的默认值格式和默认名称。您可以修改计算,以指定其他名称或值格式。
使用字段的数据表齿轮菜单来使用常用计算的快捷方式
如果您拥有创建和修改表格计算的权限,则可以按照以下步骤,通过字段的数据表齿轮状菜单创建快捷计算:
- 选择数据表中字段名称旁边的齿轮菜单。
- 选择计算以显示可用的计算类型。
- 选择一种计算类型。
除非透视探索结果,否则不会显示透视计算类型。
新计算结果将自动显示为数据表中的绿色列。
新计算结果也会显示在字段选择器的自定义字段部分中。
与其他字段一样,您可以选择计算的名称,以将其添加到查询中或从查询中移除。您还可以将光标悬停在相应字段上,以显示可用于该计算的更多选项,包括修改计算。
使用“创建或修改表计算”对话框来使用常用计算的快捷方式
此方法可让您在创建计算时选择非默认的格式或名称,或添加说明。
如果您要创建表计算,请打开创建表计算对话框;如果您要修改表计算,请打开修改表计算对话框。
- 如果启用了 In-page Table Calculations Labs 功能,表计算表达式编辑器将在探索页面的数据部分中打开。按照使用“页面内表格计算”部分创建表格计算中的说明完成使用快捷计算创建表格计算。
从计算下拉菜单中选择计算类型。此示例使用占上一行的百分比来比较库存商品的数量与上个月的库存商品数量。
- 除非透视探索结果,否则不会显示透视计算类型。
在源列下拉菜单中,选择要进行计算的字段。只有“探索”的数据表中显示的数字字段可供选择。在此示例中,用户选择对“商品库存数量”指标执行“占上一行的百分比”计算。
或者,使用格式下拉菜单为结果选择预定义的格式或创建自定义格式。如要创建自定义格式,请使用电子表格式格式,详情请参阅向数字字段添加自定义格式文档页面。如果未进行选择,Looker 会使用默认格式。
根据需要,在名称字段中将表计算重命名为非默认名称。计算名称会显示在字段选择器和数据表格中。
选择 + 添加说明,添加可选的说明(最多 255 个字符),以便为其他用户提供有关该表计算的更多背景信息或信息。
如果您已完成表计算的创建,请选择保存,将该计算添加到探索中。
新计算结果将自动显示为数据表中的绿色列。
新计算结果也会显示在字段选择器的自定义字段部分中。
与其他字段一样,您可以选择计算的名称,以将其添加到查询中或从查询中移除。您还可以将光标悬停在相应字段上,以显示可用于该计算的更多选项,包括修改计算。
复制表计算
如果您有权创建表格计算,还可以复制您或其他用户创建的现有表格计算。如果您想创建多个只有细微差别的表格计算(例如 30 天、60 天或 90 天的总和),复制并修改表格计算会很有帮助。
您可以通过以下方式复制表计算:
- 使用字段选择器自定义字段部分中的计算的三点状“更多”菜单
- 使用计算的数据表齿轮状菜单
如需复制表格计算,请按以下步骤操作:
- 在字段选择器中,展开字段选择器的自定义字段部分。
- 选择要复制的表格计算的三点状更多菜单。
- 选择复制。
或者,从计算的数据表齿轮菜单中选择复制。
在字段选择器的自定义字段部分中,复制的表计算会显示在原始表计算之后,其名称为原始表计算的名称加上附加在末尾的“复制”一词。
接下来,您可以修改复制的表计算。
修改表计算
如果您有权创建表格计算,还可以修改您或其他用户创建的现有表格计算。
您可以通过以下几种方式修改表计算:
- 使用字段选择器自定义字段部分中的计算的三点状“更多”菜单
- 使用计算的数据表齿轮状菜单
如需修改表格计算,请按以下步骤操作:
- 展开字段选择器的自定义字段部分,或从计算的数据表齿轮菜单中选择修改计算,以打开修改表格计算对话框。
- 选择要修改的表格计算旁边的三点状更多菜单。
- 选择修改以打开修改表格计算对话框。
- 如果启用了 In-page Table Calculations Labs 功能,表计算表达式编辑器将在探索页面的数据部分中打开。按照使用“页面内表格计算”部分创建表格计算中的说明完成表格计算的修改。
- 如果需要,可从计算下拉菜单中选择新的计算类型。
- 根据需要更改计算定义,包括快捷计算的来源列。只有探索中的数据表中显示的数字字段才符合条件,可用于除自定义表达式之外的计算类型。
- 如果从计算下拉菜单中选择自定义表达式,请在大文本框中添加 Looker 表达式或修改现有 Looker 表达式。您只能基于探索中的数据表中显示的字段创建表计算。
- 如果需要,请从格式下拉菜单中选择新格式。
- 根据需要,在名称字段中输入新的计算名称。计算名称会显示在字段选择器和数据表格中。如果您更改了表计算中的任何内容,请考虑修改名称以与之匹配。
- 添加或更新一个可选的字段说明,最多 255 个字符,其中包含有关表格计算的详细信息,包括其预期用途。
- 如果已有说明,系统会自动显示说明框。如果没有现有说明,请选择 + 添加说明以添加可选说明。
- 选择保存。
删除表计算
如果您有权创建表格计算,还可以删除您或其他用户创建的表格计算。删除表计算后,该计算会从探索中消失,但不会从使用该计算的任何 Look 或信息中心图块中消失。此外,如果有人使用的探索的网址包含自定义字段,那么他们仍会看到计算结果。
您可以通过以下几种方式删除表计算:
- 使用字段选择器自定义字段部分中的计算的三点状“更多”菜单
- 使用计算的数据表齿轮状菜单
如需删除表格计算,请按照以下步骤操作:
- 展开字段选择器的自定义字段部分。
- 选择要删除的表格计算旁边的三点状更多菜单。
- 选择删除。
或者,从表格计算的数据表齿轮菜单中选择删除。
您还可以使用键盘快捷键 Command-K (Mac) 或 Ctrl+K (Windows) 删除表格计算并从探索查询中清除字段。
您可以通过选择浏览器中的返回箭头来恢复已删除的自定义字段。
对表计算进行排序
如需按表格计算进行排序,请选择列顶部的字段名称,就像选择维度或度量一样。如需详细了解排序,请参阅创建和修改探索文档页面。
无法对表计算进行排序时
对表计算进行排序与在 Looker 中对维度或度量进行排序类似。不过,存在两个重要区别,导致在某些情况下无法进行排序:
- 表计算是在从数据库检索数据后创建的,这意味着,当您对表计算进行排序时,只能对已显示的数据进行排序。
- 有些表计算会应用于同一列中的多行,例如使用
offset()
函数时(如需了解详情,请参阅 Looker 的最佳实践,使用offset
和pivot_offset
函数)。在这些情况下,对表格计算进行排序会改变其结果,因此系统会停用排序功能。
在以下特定情况下,您无法对表格计算进行排序:
- 当您使用的计算达到行数上限时
- 当您在已按表格计算结果排序后使用维度或指标时
- 使用利用偏移量的表计算时
达到行数上限的计算
如果查询中的行数超过了您设置的行数上限,您将无法对表格计算进行排序。这是因为表格计算仅基于显示的行。因此,如果您达到行数上限,表格计算可能会遗漏一些本应排序到结果中的行。如果您遇到此问题,可以尝试增加行数上限(最多 5,000 行)。
当结果达到行数上限时,Looker 会在数据表格顶部的黄色栏中显示“已达到行数上限:结果可能不完整”字样,提醒您注意。
如果出现这种情况,您可以尝试按非表计算的字段对数据表进行排序。
在对表计算进行排序后对维度或衡量指标进行排序
如本页面的达到行数上限的计算部分中所述,表格计算仅基于显示的行。相比之下,按维度或指标排序会返回到数据库,以确保找到正确的行。因此,您应先按维度和指标进行排序。然后,当数据库返回正确的数据后,您可以根据表计算对这些结果进行排序。
在可视化图表中使用表计算
与 LookML 定义的维度和度量一样,表计算会自动显示在可视化图表中。
此外,您还可以使用表格计算来决定应在可视化图表中显示数据的哪些行。我们将使用以下示例来探索此功能;此示例包含有关配件类别的每周销售信息。
请注意,基础数据表包含维度“订单创建周”和指标“订单商品总利润”,以及一个名为“上周利润百分比”的表格计算,用于比较每周的利润与上周的利润:
现在,您可以阻止某些数据行显示在柱状图中。为此,您需要创建一个计算结果为 true 或 false 的表计算,然后隐藏 false 值(这些值在数据表中会显示为“否”条目)。您不希望公式的结果为“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 行将不被考虑。
- 如果您向数据表格添加总计行,则某些执行汇总的表格计算可能无法按预期方式进行加总,例如使用
percentile
或median
的计算。这是因为表计算功能会使用总计行中的值来计算总计,而不是使用数据列中的值。如需问题排查提示,请参阅将可能令人困惑的表格计算总计显示为 null 最佳实践页面。 - 对于小于 1 的小数,请始终使用前导零。例如,0.95 可以正常运行,但 .95 会导致错误。
- 使用 Command-K (Mac) 或 Ctrl+K (Windows) 键盘快捷键会清除所有表格计算(包括自定义字段)。如需恢复表格计算,请选择浏览器中的返回箭头。您可能还需要重新运行查询。