

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Quick Sight 准备数据
准备数据

数据集存储您对该数据进行的任何数据准备，以便在多个分析中重复使用准备的数据。数据准备提供诸如添加计算字段、应用筛选条件、更改字段名称或数据类型之类的选项。如果您将 SQL 数据库作为数据来源的基础，则还可以使用数据准备来联接表。或者，您也可以输入一个 SQL 查询（如果您希望使用多个表中的数据）。

如果您想在 Amazon Quick Sight 中使用数据源之前对其进行转换，则可以根据自己的需要进行准备。然后，将该准备工作保存为数据集的一部分。

您可以在创建数据集时准备数据，或稍后进行编辑。有关创建新数据集并进行准备的更多信息，请参阅[创建数据集](creating-data-sets.md)。有关打开现有数据集以准备数据的更多信息，请参阅[编辑数据集](edit-a-data-set.md)。

可以使用以下主题了解数据准备的更多信息。

**Topics**
+ [

# 数据准备体验（全新）
](data-prep-experience-new.md)
+ [

# 描述数据
](describing-data.md)
+ [

# 选择文件上传设置
](choosing-file-upload-settings.md)
+ [

# 数据准备经验（旧版）
](data-prep-experience-legacy.md)
+ [

# 使用 SQL 自定义数据
](adding-a-SQL-query.md)
+ [

# 添加地理空间数据
](geospatial-data-prep.md)
+ [

# 使用不支持的日期或自定义日期
](using-unsupported-dates.md)
+ [

# 向 Amazon Quick Sight 数据集添加唯一密钥
](set-unique-key.md)
+ [

# 将亚马逊 A SageMaker I 模型与 Amazon Quick Sight 集成
](sagemaker-integration.md)
+ [

# 准备数据集示例
](preparing-data-sets.md)

# 数据准备体验（全新）


数据准备将原始数据转换为针对分析和可视化进行了优化的格式。在商业智能中，这一关键过程涉及清理、结构化和丰富数据，以获得有意义的业务见解。

Amazon Quick Sight 的数据准备界面通过直观的可视化体验彻底改变了这一流程，使用户无需使用 SQL 专业知识即可创建分析就绪的数据集。通过其现代、简化的方法，用户可以高效地创建和管理商业智能数据集。可视化界面提供了清晰、顺序的数据转换视图，使作者能够精确地跟踪从初始状态到最终输出的变化。

该平台强调协作和可重用性，使团队能够在整个组织中共享和重新调整工作流程。这种协作设计促进了数据转换实践的一致性，同时消除了多余的工作，最终促进了跨团队的标准化流程并提高了整体效率。

**Topics**
+ [

# 数据准备体验中的组成部分
](data-prep-components.md)
+ [

# 数据准备步骤
](data-prep-steps.md)
+ [

# 高级工作流程功能
](advanced-workflow-capabilities.md)
+ [

# 仅限香料的功能
](spice-only-features.md)
+ [

# 在数据准备体验之间切换
](switching-between-data-prep-experiences.md)
+ [

# 新的数据准备体验不支持的功能
](unsupported-features.md)
+ [

# 数据准备限制
](data-preparation-limits.md)
+ [

# 摄取行为发生变化
](ingestion-behavior-changes.md)
+ [

# 常见问题
](new-data-prep-faqs.md)

# 数据准备体验中的组成部分
组件

Amazon Quick Sight 的数据准备体验具有以下核心组成部分。

## 工作流


Quick Sight 的数据准备体验中的工作流程代表了一系列连续的数据转换步骤，这些步骤将引导您的数据集从原始状态转变为可用于分析的形式。这些工作流程专为可重复使用而设计，使分析师能够利用现有工作并在此基础上再接再厉，同时在整个组织中保持一致的数据转换标准。

虽然工作流可以容纳通过各种输入或通过 Divergence（将在后续章节中详细介绍）的多条路径，但它们最终必须汇聚到一个输出表中。这种统一的结构确保了数据的一致性和简化的分析能力。

## 转换


转换是一种特定的数据操作操作，它会更改数据的结构、格式或内容。Quick Sight 的数据准备体验提供各种转换类型，包括联接、筛选、聚合、透视、取消透视、追加和计算列。在重塑数据以满足分析要求方面，每种转换类型都有不同的用途。这些转换是作为工作流程中的单个步骤实施的。

## 步骤


步骤是指在工作流程中应用的相同类型的同质变换的集合。每个步骤都包含一个或多个相同转换类别的相关操作。例如，“重命名” 步骤可以包括多列重命名操作，而 “筛选” 步骤可以包含多个筛选条件，所有这些条件都作为工作流程中的一个单元进行管理。

大多数步骤可以包括多个操作，但有两个值得注意的例外：Join 和 Append 步骤仅限于每个步骤两个输入表。要联接或追加两个以上的表，可以按顺序创建其他 “连接” 或 “追加” 步骤。

步骤按顺序显示，每个步骤都建立在先前步骤的结果之上，允许您跟踪数据的渐进转换。要重命名或删除某个步骤，请选择该步骤并选择三点菜单。

## Connector


连接器通过指示工作流程方向的箭头将两个步骤连接起来。您可以通过选择连接器并按删除键来删除该连接器。要在两个现有步骤之间添加步骤，只需删除连接器，添加新步骤，然后通过在步骤之间拖动鼠标来重新连接这些步骤。

## 配置窗格


**配置窗格**是一个交互式区域，您可以在其中定义所选步骤的参数和设置。当您在工作流程中选择一个步骤时，此窗格会显示该特定转换类型的相关选项。例如，在配置 “联接” 步骤时，可以选择联接类型、匹配列和其他特定于联接的设置。“**配置” 窗格的** point-and-click界面无需了解 SQL 知识。

## 预览窗格


预**览窗格**显示应用当前转换步骤后显示的数据的实时样本。这种即时视觉反馈可帮助您在继续下一步之前验证每次转换是否都产生了预期的结果。当您修改步骤配置时，**预览窗格**会动态更新，从而可以放心地对数据转换进行迭代细化。

这些组件协同工作以创建直观、可视化的数据准备体验，使业务用户无需专业技术即可访问复杂的数据转换。

# 数据准备步骤


Amazon Quick Sight 的数据准备体验提供了 11 种强大的步骤类型，使您能够系统地转换数据。在数据准备工作流程中，每个步骤都有特定的用途。

可以通过 “配置” 窗格中的直观界面**配置**步骤，在 “**预览**” 窗格中可以看到即时反馈。可以按顺序组合步骤来创建复杂的数据转换，而无需 SQL 专业知识。

每个步骤都可以接收来自物理表的输入或上一步的输出。大多数步骤都接受单个输入，但 Append 和 Join 步骤除外，它们只需要两个输入。

## Input


“输入” 步骤允许您从多个来源选择和导入数据，以便在后续步骤中进行转换，从而在 Quick Sight 中启动数据准备工作流程。

**输入选项**
+ **添加数据集**

  利用现有的 Quick Sight 数据集作为输入源，在团队已经准备好和优化的数据基础上再接再厉。
+ **添加数据源**

  通过选择特定的数据库对象并提供连接参数，直接连接到 Amazon Redshift、Athena、RDS 等数据库或其他支持的来源。
+ **添加文件上传**

  以 CSV、TSV、Excel 或 JSON 等格式直接从本地文件导入数据。

**配置**

“输入” 步骤无需配置。**预览**窗格显示您导入的数据以及源信息，包括连接详细信息、表名和列元数据。

**使用说明**
+ 单个工作流程中可以存在多个输入步骤。
+ 您可以在工作流程中的任何时候添加输入步骤。

## 添加计算列


“添加计算列” 步骤允许您使用对现有列执行计算的行级表达式创建新列。您可以使用标量（行级）函数和运算符创建新列，也可以应用引用现有列的行级计算。

**配置**

要配置 “添加计算列” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 为您的新计算列命名。

1. [使用计算编辑器构建表达式，该编辑器支持行级函数和运算符（例如 [ifelse](ifelse-function.md) 和 round）。](round-function.md)

1. 保存您的计算结果。

1. 预览表达式结果。

1. 根据需要添加更多计算列。

**使用说明**
+ 此步骤仅支持标量（行级）计算。
+ 在 SPICE 中，计算的列是实现的，并在后续步骤中用作标准列。

## 更改数据类型


Quick Sight 通过支持四种抽象数据类型来简化数据类型管理：`date``decimal``integer`、、和`string`。这些抽象类型通过自动将各种源数据类型映射到其 Quick Sight 等效数据类型来消除复杂性。例如，、、`tinyint``smallint``integer`、和`bigint`都映射到`integer`、while `date`、`datetime`、和`timestamp`都映射到`date`。

这种抽象意味着您只需要了解 Quick Sight 的四种数据类型，因为在与不同的数据源交互时，Quick Sight 会自动处理所有底层数据类型的转换和计算。

**配置**

要配置 “更改数据类型” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要转换的列。

1. 选择目标数据类型（`string`、`integer``decimal`、或`date`）。

1. 对于日期转换，请指定格式设置并根据输入格式预览结果。在 Quick Sight 中查看[支持的日期格式](supported-data-types-and-values.md)。

1. 根据需要添加其他列进行转换。

**使用说明**
+ 为了提高效率，只需一个步骤即可转换多列的数据类型。
+ 使用 SPICE 时，所有数据类型更改都将在导入的数据中实现。

## 重命名列


“重命名列” 步骤使您可以修改列名，使其更具描述性、用户友好性并与组织的命名惯例保持一致。

**配置**

要配置 “重命名列” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要命名的列。

1. 为所选列输入新名称。

1. 根据需要添加更多要重命名的列。

**使用说明**
+ 所有列名在您的数据集中必须是唯一的。

## 选择列


“选择列” 步骤使您可以通过包含、排除列和重新排序列来简化数据集。这有助于通过删除不必要的列并按逻辑顺序组织剩余的列进行分析来优化数据结构。

**配置**

要配置 “选择列” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要包含在输出中的特定列。

1. 按您的首选顺序选择列以建立顺序。

1. 使用 **“全选”** 可按其原始顺序包括其余列。

1. 取消选中不需要的列，将其排除在外。

**主要特点**
+ 输出列按选择顺序显示。
+ **“全选”** 将保留原始列顺序。

**使用说明**
+ 未选中的列将从后续步骤中删除。
+ 通过删除不必要的列来优化数据集大小。

## Append


追加步骤垂直合并两个表，类似于 SQL UNION ALL 操作。Quick Sight 会自动按名称而不是按顺序匹配列，即使表的列顺序不同或列数各不相同，也能实现高效的数据整合。

**配置**

要配置 “追加” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择两个要追加的输入表。

1. 查看输出列顺序。

1. 检查两个表中存在哪些列与单个表中存在哪些列。

**主要特征**
+ 按名称而不是按顺序匹配列。
+ 保留两个表中的所有行，包括重复行。
+ 支持具有不同列数的表。
+ 按照表 1 的列顺序进行匹配列，然后添加表 2 中的唯一列。
+ 显示所有列的清晰源指示符

**使用说明**
+ 追加具有不同名称的列时，请先使用 “重命名” 步骤。
+ 每个 Append 步骤恰好组合了两个表；使用附加步骤可以创建更多表。

## 联接


“联接” 步骤根据指定列中的匹配值水平合并来自两个表的数据。Quick Sight 支持 “左外”、“右外”、“全外” 和 “内连接” 类型，为您的分析需求提供了灵活的选项。该步骤包括智能列冲突解决方案，可自动处理重复的列名。虽然自联接不能作为特定的联接类型使用，但使用工作流程差异可以获得类似的结果。

**配置**

要配置 “加入” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择两个要连接的输入表。

1. 选择您的联接类型（左外、右外、全外或内部）。

1. 指定每个表中的联接键。

1. 查看自动解决的列名冲突。

**主要特征**
+ 支持多种联接类型，以满足不同的分析需求。
+ 自动解析重复的列名。
+ 接受计算列作为联接键。

**使用说明**
+ 联接键必须具有兼容的数据类型；如果需要，请使用 “更改数据类型” 步骤。
+ 每个 Join 步骤恰好组合两个表；使用其他 Join 步骤可以创建更多表。
+ 在 “加入” 之后创建 “重命名” 步骤，以自定义自动解析的列标题。

## 聚合


“聚合” 步骤允许您通过对列进行分组和应用聚合操作来汇总数据。这种强大的转换功能可根据您的指定维度将详细数据浓缩为有意义的摘要。Quick Sight 通过直观的界面简化了复杂的 SQL 操作，提供了全面的聚合功能，包括`ListAgg`和等高级字符串操作`ListAgg distinct`。

**配置**

要配置 “聚合” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要作为分组依据的列。

1. 为度量列选择聚合函数。

1. 自定义输出列名称。

1. 针对 `ListAgg` 和 `ListAgg distinct`：

   1. 选择要聚合的列。

   1. 选择分隔符（逗号、短划线、分号或垂直线）。

1. 预览汇总数据。

**每种数据类型支持的函数**


| 数据类型 | 支持的函数 | 
| --- | --- | 
|  数值  |  `Average`, `Sum` `Count`, `Count Distinct` `Max`, `Min`  | 
|  日期  |  `Count`, `Count Distinct` `Max`, `Min` `ListAgg`，`ListAgg distinct`（仅限日期）  | 
|  字符串  |  `ListAgg`, `ListAgg distinct` `Count`, `Count Distinct` `Max`, `Min`  | 

**主要特征**
+ 对同一步骤中的列应用不同的聚合函数。
+ 不使用聚合函数@@ **的分组方式**充当 SQL SELECT DISTIN
+ `ListAgg`连接所有值；仅`ListAgg distinct`包括唯一值。
+ `ListAgg`默认情况下，函数保持升序排序顺序。

**使用说明**
+ 聚合可显著减少数据集中的行数。
+ `ListAgg`还有`ListAgg distinct`支持`date`价值观，但不是`datetime`。
+ 使用分隔符自定义字符串连接输出。

## 筛选条件


使用 “筛选” 步骤，您可以通过仅包括符合特定条件的行来缩小数据集的范围。您可以在一个步骤中应用多个筛选条件，所有这些条件都通过`AND`逻辑组合在一起，以帮助将分析重点放在相关数据上。

**配置**

要配置 “筛选器” 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要筛选的列。

1. 选择比较运算符。

1. 根据列的数据类型指定筛选值。

1. 如果需要，可以在不同的列中添加其他筛选条件。

**注意**  
带有 “在” 或 “不在” 的字符串筛选器：输入多个值（每行一个）。
数字和日期筛选器：输入单个值（“介于” 除外，它需要两个值）。

**每种数据类型支持的运算符**


| 数据类型 | 支持的运算符 | 
| --- | --- | 
|  整数和十进制  |  等于，不等于 大于，小于 大于或等于，小于或等于 介于  | 
|  日期  |  之后，之前 介于 大于或等于、等于、等于或等于  | 
|  字符串  |  等于，不等于 开头为，结尾为 包含，不包含 在，不在  | 

**使用说明**
+ 在单个步骤中应用多个筛选条件。
+ 混合不同数据类型的条件。
+ 实时预览筛选结果。

## 转置


Pivot 步骤将行值转换为唯一的列，将数据从长格式转换为宽格式，以便于比较和分析。这种转换需要对值过滤、聚合和分组进行规范，以便有效地管理输出列。

**配置**

要配置 Pivot 步骤，请在 “**配置**” 窗格中使用以下内容：

1. **透视列**：选择其值将成为列标题的列（例如，类别）。

1. **透视列行值**：筛选要包含的特定值（例如，技术、办公用品）。

1. **输出列标题**：自定义新的列标题（默认为透视列值）。

1. **值列**：选择要汇总的列（例如，销售额）。

1. **聚合函数**：选择聚合方法（例如，Sum）。

1. **分组依**据：指定组织列（例如，区段）。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/pivot.png)


**每种数据类型支持的运算符**


| 数据类型 | 支持的运算符 | 
| --- | --- | 
|  整数和十进制  |  `Average`, `Sum` `Count`, `Count Distinct` `Max`, `Min`  | 
|  日期  |  `Count`, `Count Distinct` `Max`, `Min` `ListAgg`，`ListAgg distinct`（仅限日期值）  | 
|  字符串  |  `ListAgg`, `ListAgg distinct` `Count`, `Count Distinct` `Max`, `Min`  | 

**使用说明**
+ 每个转置的列都包含来自值列的聚合值。
+ 为清晰起见，自定义列标题。
+ 实时预览转换结果。

## 取消透视


Unpivot 步骤将列转换为行，将宽数据转换为更长、更窄的格式。这种转换有助于将分布在多列中的数据组织成更具结构性的格式，以便于分析和可视化。

**配置**

要配置 Unpivot 步骤，请在 “**配置**” 窗格中执行以下操作：

1. 选择要取消透视成行的列。

1. 定义输出列的行值。默认值为原始列名。一些例子包括技术、办公用品和家具。

1. 命名两个新的输出列。
   + **未转置的列标题**：以前的列名（例如，类别）的名称
   + **未旋转的列值**：未旋转值的名称（例如，Sales）

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/unpivot.png)


**主要特征**
+ 在输出中保留所有未旋转的列。
+ 自动创建两个新列：一个用于以前的列名，另一个用于其对应的值。
+ 将宽数据转换为长格式。

**使用说明**
+ 所有未转置的列都必须具有兼容的数据类型。
+ 取消旋转后，行数通常会增加。
+ 在应用更改之前，请实时预览更改。

# 高级工作流程功能


Amazon Quick Sight 的数据准备体验提供了复杂的功能，可增强您创建复杂、可重复使用的数据转换的能力。本节介绍两项可扩展工作流程潜力的强大功能。

Divergence 使您能够从单个步骤创建多个转换路径，从而允许以后可以重新组合的并行处理流。此功能对于诸如自连接和并行转换之类的复杂场景特别有用。

复合数据集允许您使用现有数据集作为构建块来构建分层数据结构。此功能可促进团队之间的协作，并通过可重复使用的分层转换确保一致的业务逻辑。

这些功能共同提供灵活的工作流程设计、增强的团队协作和可重复使用的数据转换。它们可确保清晰的数据沿袭并支持可扩展的数据准备解决方案，使您的组织能够高效、清晰地处理日益复杂的数据场景。

## 分歧


Divergence 使您能够从工作流程中的单个步骤创建多个并行转换路径。这些路径可以独立转换，然后重新组合，从而实现复杂的数据准备方案，例如自联接。

**创建不同的路径**

要启动分歧，请在工作流程中执行以下操作：

1. 选择要在其中创建背离的步骤。

1. 选择出现的 **\$1** 图标。

1. 配置出现的新分支。

1. 对每条路径应用所需的变换。

1. 使用 Join 或 Append 步骤将路径重组为单个输出。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/divergence.png)


**主要特征**
+ 从一个步骤中创建多达五条发散路径。
+ 对每条路径应用不同的变换。
+ 使用 “连接” 或 “追加” 步骤重新组合路径。
+ 独立预览每条路径中的更改。

**最佳实践**
+ 使用差异来实现自联接。
+ 为并行转换创建数据副本。
+ 规划您的重组策略（加入或追加）。
+ 保持清晰的路径命名，以提高工作流程的可见性。

## 复合数据集


复合数据集使您能够在现有数据集的基础上进行构建，创建可在整个组织中共享和重复使用的分层数据转换结构。在 SPICE 和直接查询模式下，Quick Sight 支持多达 10 个级别的复合数据集。

**创建复合数据集**

要创建复合数据集，请在工作流程中执行以下操作：

1. 创建新数据集时选择 “输入” 步骤。

1. 在 “**添加数据” 下选择 “数据****集**” 作为来源。

1. 选择要构建的现有数据集。

1. 根据需要应用其他变换。

1. 另存为新数据集。

**主要特征**
+ 构建分层数据转换结构。
+ 支持多达 10 个级别的数据集嵌套。
+ 兼容 SPICE 和直接查询。
+ 保持清晰的数据沿袭。
+ 启用特定于团队的变换。

此功能增强了不同团队之间的协作。例如，


|  角色 | Action | Output | 
| --- | --- | --- | 
|  全球分析师  |  使用全球业务逻辑创建数据集  |  数据集 A  | 
|  美洲分析师  |  使用数据集 A，添加区域逻辑  |  数据集 B  | 
|  美西分析师  |  使用数据集 B，添加本地逻辑  |  数据集 C  | 

这种分层方法通过为转型层分配明确的所有权，在整个组织中促进业务逻辑的一致性。它创建了可追溯的数据谱系，同时支持多达 10 个级别的数据集嵌套，从而实现受控和系统的数据转换管理。

**最佳实践**
+ 为每个转换层建立明确的所有权。
+ 记录数据集的关系和依赖关系。
+ 根据业务需求规划层次结构深度。
+ 保持一致的命名惯例。
+ 仔细查看和更新上游数据集。

# 仅限香料的功能


Amazon Quick Sight 的 SPICE（超快速、并行、内存计算引擎）支持某些计算密集型的数据准备功能。这些转换是在 SPICE 中实现的，以获得最佳性能，而不是在查询时执行。

**仅限香料的功能**


| Steps | 其他功能 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/spice-only-features.html)  |  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/spice-only-features.html)  | 

**SPICE 和 DirectQuery**


| Steps | 其他功能 | 
| --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/spice-only-features.html)  |  [\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/spice-only-features.html)  | 

**最佳实践**
+ 将 SPICE 用于需要仅限 Spice 功能的工作流程。
+ 选择 SPICE 可优化复杂转换和大型数据集的性能。
+ 当不需要仅限 Spice 的功能时，可以考虑 DirectQuery 满足实时数据需求。

# 在数据准备体验之间切换


传统数据准备体验是指在 2025 年 10 月之前存在的 Amazon Quick Sight 中以前的数据准备界面。新的数据准备体验是显示 step-by-step转换序列的增强型可视化界面。旧数据集是在新的数据准备体验之前创建的数据集，而新数据集是指在 2025 年 10 月之后创建的数据集。

创建新数据集时，Quick Sight 会自动引导您进入新的数据准备体验。此可视化界面为数据转换任务提供了增强的功能和更高的可用性。

## 选择退出选项


在保存和发布数据集之前，如果愿意，您可以选择切换回传统的数据准备体验。这种灵活性使团队能够按照自己的节奏进行过渡，同时熟悉新界面。

**重要**  
如果在新体验中保存并发布了数据集，则无法选择返回旧版体验。这是设计使然，因为新体验具有重要的新功能，而传统体验不支持这些功能。因此，不支持将数据集从一种体验直接转换为另一种体验。您需要创建一个新的数据集才能切换到旧版体验。

## 过渡工作流程


在新的或旧版体验中保存数据集后，转换就无法直接从一种体验转换为另一种体验。但是，如果存在已发布的数据集版本，则可以使用版本控制转到旧版体验中的先前版本。

传统数据集将继续只能通过旧版界面进行查看和编辑。这样可以保持与先前建立的工作流程的兼容性。

在完全过渡之前，请花点时间熟悉新的数据准备体验。在处理旧数据集时，可以考虑使用新的体验创建新版本，以便将来进行修改。如果需要，可使用版本控制来维护对数据集旧版本的访问权限。记录从传统体验过渡到新体验时工作流程中的任何变化，以确保团队协调一致。

# 新的数据准备体验不支持的功能
不支持的功能

虽然新的数据准备体验提供了增强的功能，但尚不支持旧版体验中的某些功能。本节概述了这些功能，并为处理受影响的工作流程提供了指导。

使用不支持的数据源时，Amazon Quick Sight 会自动默认使用旧版体验。对于其他不支持的功能，请选择数据准备页面右上角的**切换到旧版体验**。在旧版体验中创建的规则数据集仍与旧版和新版体验数据集兼容。

## 不支持的数据源


以下数据源目前仅在旧版体验中可用。


| 数据来源 | Details | 
| --- | --- | 
|  Salesforce  |  自动默认为旧版体验  | 
|  Google Sheets  |  自动默认为旧版体验  | 
|  S3 分析  |  **支持 S3 数据源**  | 

## 其他不支持的功能


以下功能目前仅在旧版体验中可用。


| 功能类别 | 不支持的功能 | 
| --- | --- | 
|  数据集管理  |  [增量刷新](refreshing-imported-data.md#refresh-spice-data-incremental)、[数据集参数](dataset-parameters.md)、[列文件夹](organizing-fields-folder.md)、[列描述](describing-data.md)  | 
|  数据类型  |  [地理空间](geospatial-data-prep.md)[、[ELF/CLF 格式](supported-data-sources.md#file-data-sources)、S3 中的 Zip/ 文件 GZip ](supported-data-sources.md#file-data-sources)  | 
|  配置选项  |  [文件上传设置中的 “从行开始”](choosing-file-upload-settings.md)，JODA 日期格式  | 
|  从传统体验中选择父数据集  |  父数据集和子数据集必须存在于同一个体验环境中。您不能将旧版体验数据集用作新体验数据集的父数据集。  | 

## 未来发展


Amazon Quick Sight 计划将来在新的数据准备体验中实现这些功能。这种方法可确保新数据准备体验的初始发布优先考虑以下几点：

**增强的功能**
+ 视觉变换工作流程
+ 提高流程透明度
+ 通过 Divergence 获得高级制备技术
+ 强大的新功能，例如追加、聚合和透视

**灵活采用**

用户可以在发布数据集之前在体验之间进行选择，从而在团队按照自己的节奏过渡的同时确保工作流程不间断。这种方法允许立即访问新功能，同时通过传统体验保持对特殊需求的支持。

# 数据准备限制


Amazon Quick Sight 的数据准备体验旨在处理企业级数据集，同时保持最佳性能。以下限制可确保功能可靠。

## 数据集大小限制 (SPICE)

+ **输出大小**：高达 2TB 或 20 亿行
+ **总输入大小**：组合输入源不能超过 2TB
+ **辅助表大小**：合并大小限制为 20GB

**注意**  
主表是指工作流程中具有最大大小的表；所有其他表都是次要表。

## 工作流程结构限制

+ **最大步骤**：每个工作流程最多 256 个转换步骤
+ **源表**：每个工作流程最多 32 个导入步骤
+ **输出列**：工作流程中任何步骤最多有 2048 列，最终输出表有 2000 列
+ **发散路径**：单个步骤最多有 5 条路径（仅限 SPICE，不适用于 DirectQuery）
+ 以@@ **数据集为源**：SPICE 和 DirectQuery

这些限制旨在平衡灵活性与性能，实现复杂的数据转换，同时确保最佳的分析能力。

# 摄取行为发生变化


新的数据准备体验引入了 SPICE 摄取期间处理数据质量问题的重要变化。这一变化会显著影响数据集中的数据完整性和透明度。

在传统体验中，当遇到数据类型不一致（例如日期格式不正确或[类似问题](errors-spice-ingestion.md)）时，在摄取过程中会跳过包含有问题单元格的整行。这种方法会减少最终数据集中的行数，从而可能掩盖数据质量问题。

新体验采用了更精细的方法来解决数据不一致问题。遇到有问题的单元格时，只有不一致的值才会转换为空值，同时保留整行。这种保留可确保其他列中的相关数据仍然可供分析。

**对数据集质量的影响**

当源数据包含不一致时，在新体验中创建的数据集通常会比旧版数据集包含更多的行。这种增强的方法有几个好处：
+ 通过保留所有行来提高数据的完整性
+ 提高识别数据质量问题的透明度
+ 更好地了解有问题的值以进行补救
+ 将相关数据保存在未受影响的列中

这一变化使分析师能够更有效地识别和解决数据质量问题，而不必在数据集中忽略有问题的行。

# 常见问题


## 1. 用户何时需要从全新体验切换到传统体验？


用户在处理包含当前[不支持的功能](unsupported-features.md)的数据集时，必须返回旧版体验。Quick Sight正在积极努力将这些功能整合到即将发布的版本中的新体验中。

## 2. 当尝试在新体验中添加数据集时，为什么数据集会显示为灰色？ 数据集能否在传统体验和新体验之间进行组合？


目前，父数据集和子数据集必须存在于同一个体验环境中。您无法合并旧体验和新体验的数据集，因为新体验包括旧版体验中不提供的其他功能，例如追加功能、Pivot 功能和 Divergence。

**使用旧版体验中的父数据集**

要使用旧版体验中的父数据集，您可以切换回该环境。只需导航到数据准备页面，然后选择右上角的 “**切换回传统体验**” 即可。在那里，您可以根据需要创建子数据集。

**未来发展**

我们计划实施允许用户将旧数据集升级到新体验的功能。这种升级后的路径将允许在新体验中使用旧的家长数据集。

## 3. 为什么 Quick Sight 在实现与传统体验完全相同的功能之前推出新的数据准备体验？


新的数据准备体验是通过广泛的客户合作开发的，旨在应对现实世界的分析挑战。最初的发布会优先考虑：

**增强的功能**
+ 视觉变换工作流程
+ 提高流程透明度
+ 通过 Divergence 获得高级制备技术
+ 强大的新功能，例如追加、聚合和透视

**灵活采用**

用户可以在发布数据集之前在体验之间进行选择，从而在团队按照自己的节奏过渡的同时确保工作流程不间断。这种方法允许立即访问新功能，同时通过传统体验保持对特殊需求的支持。

## 4. 目前仅在旧版体验中可用的功能是否会添加到新体验中？


可以。Quick Sight正在积极努力将传统功能整合到新体验中。

## 5. API 更改如何影响现有的数据集创建脚本？


Quick Sight 在引入新功能的同时保持了向后兼容性：
+ 现有脚本：旧版 API 脚本将继续运行，在旧版体验中创建数据集
+ API 命名：当前 API 名称保持不变
+ 新功能：其他 API 格式支持新体验的增强功能
+ 文档：我们的 API 参考中提供了新体验的完整 API 规范

## 6. 发布后，数据集能否在体验之间进行转换？

+ 未来迁移路径：Quick Sight将在未来添加一项功能，以轻松将旧数据集迁移到新体验。
+ 单向流程：由于高级功能依赖性，不支持将数据集从新体验转换为旧格式

# 描述数据


使用 Amazon Quick Sight，您可以添加有关数据集中列（字段）的信息或*元数据*。通过添加元数据，可以使数据集变得不言自明且更易于重用。这样做可以帮助数据管理员及其客户了解数据的来源及其含义。这是一种与使用数据集或将其与其他数据集组合以构建控制面板的用户进行沟通的方式。元数据对于组织之间共享的信息尤其重要。

向数据集添加元数据后，任何使用该数据集的用户都可以使用字段描述。正在主动浏览**字段**列表的用户在字段名称上停下来时就会出现列描述。正在编辑数据集或分析的用户可以看到列描述，但查看控制面板的用户看不见。描述未格式化。您可以输入换行符和格式标记，编辑器会保留这些编辑。但是，显示的描述工具提示只能显示单词、数字和符号，而不能显示格式。

**编辑列或字段的描述**

1. 从 Quick 主页中，选择左侧**的数据**。

1. 在 “**数据**” 选项卡中，选择要处理的数据集。

1. 在打开的数据集详细信息页面上，选择右上角的**编辑数据集**。

1. 在打开的数据集页面上，在底部的表格预览或左侧的字段列表中选择列。

1. 要添加或更改描述，请执行以下操作之一：
   + 在屏幕底部，通过字段名称旁边的铅笔图标打开字段的设置。
   + 在字段列表中，从字段名称旁边的菜单 中打开字段的设置。然后从上下文菜单中选择**编辑名称和描述**。

1. 添加或更改字段的描述。

   要删除现有描述，请删除“描述”框中的所有文本。

1. （可选）对于**名称**，如果要更改字段的名称，可以在此处输入新名称。

1. 选择 **Apply (应用)** 以保存更改。选择取消以退出。

# 选择文件上传设置


如果使用的是文件数据来源，请确认上传设置，并在必要时进行更正。

**重要**  
如果需要更改上传设置，请在对数据集进行任何其他更改之前进行这些更改。更改上传设置会导致 Amazon Quick Sight 重新导入文件。该过程会覆盖您到目前为止所做的任何更改。

## 更改文本文件上传设置


文本文件上传设置包括文件标题指示符、文件格式、文本分隔符、文本限定符和起始行。如果使用的是 Amazon S3 数据来源，您选择的上传设置将应用于您选择在该数据集中使用的所有文件。

要更改文本文件上传设置，请按照以下过程操作。

1. 在数据准备页上，选择展开图标打开 **Upload Settings** 窗格。

1. 在 **File format** 中，选择文件格式类型。

1. 如果选择了 **custom separated (CUSTOM)** 格式，请在 **Delimiter** 中指定分隔符。

1. 如果文件不包含标题行，请取消选中 **Files include headers** 复选框。

1. 如果要从第一行以外的行开始，请在 **Start from row** 中指定行号。如果选中了 **Files include headers** 复选框，则将新的起始行被视为标题行。如果未选中 **Files include headers** 复选框，则将新的起始行视为第一个数据行。

1. 在 **Text qualifier** 中，选择文本限定符：单引号 (') 或双引号 (")。

## 更改 Microsoft Excel 文件上传设置


Microsoft Excel 文件上传设置包括范围标题指示符和整个工作表选择器。

要更改 Microsoft Excel 文件上传设置，请按照以下过程操作。

1. 在数据准备页上，选择展开图标打开 **Upload Settings** 窗格。

1. 将 **Upload whole sheet** 保留为选中状态。

1. 如果文件不包含标题行，请取消选中 **Range contains headers** 复选框。

# 数据准备经验（旧版）


**Topics**
+ [

# 添加计算
](working-with-calculated-fields.md)
+ [

# 联接数据
](joining-data.md)
+ [

# 准备数据字段以便在 Amazon Quick Sight 中进行分析
](preparing-data-fields.md)
+ [

# 使用 Amazon Quick Sight 筛选数据
](adding-a-filter.md)
+ [

# 预览数据集中的表
](previewing-tables-in-a-dataset.md)

# 添加计算


使用以下一项或多项创建计算字段以转换数据：
+ [运算符](arithmetic-and-comparison-operators.md)
+ [函数](functions.md)
+ 包含数据的字段
+ 其他计算字段

您可以在数据准备期间或从分析页面中向数据集添加计算字段。如果在数据准备期间将计算字段添加到数据集中，则可以在使用该数据集的所有分析中使用该字段。在将一个计算字段添加到分析中的数据集时，只能在此分析中使用该字段。有关添加计算字段的更多信息，请参阅以下主题。

**Topics**
+ [

# 添加计算字段
](adding-a-calculated-field-analysis.md)
+ [

# Amazon Quick Sight 中的评估顺序
](order-of-evaluation-quicksight.md)
+ [

# 在 Quick Sight 中使用关卡感知计算
](level-aware-calculations.md)
+ [

# Amazon Quick 的计算字段函数和运算符参考
](calculated-field-reference.md)

# 添加计算字段


使用以下一项或多项创建计算字段以转换数据：
+ [运算符](arithmetic-and-comparison-operators.md)
+ [函数](functions.md)
+ 聚合函数（只能将这些函数添加到分析中）
+ 包含数据的字段
+ 其他计算字段

您可以在数据准备期间或从分析页面中向数据集添加计算字段。如果在数据准备期间将计算字段添加到数据集中，则可以在使用该数据集的所有分析中使用该字段。在将一个计算字段添加到分析中的数据集时，只能在此分析中使用该字段。

分析同时支持单行操作和聚合操作。单行操作是指为每行提供 (可能) 不同的结果的操作。聚合操作提供的结果始终与整个行集相同。例如，如果您使用不带任何条件的简单字符串函数，它将更改每一行。如果您使用聚合函数，该规则将应用于组中的所有行。如果要查询美国的总销售额，则相同的数量应用于整个集合。如果需要特定状态的数据，则总销售额会反映新分组。它仍将为整个集合提供一个结果。

通过在分析内创建聚合的计算字段，您可以深入了解数据。在每个级别相应地重新计算聚合字段的值。数据集准备期间不能有这种类型的聚合。

例如，假设您要计算每个国家/地区、区域和州/省的利润百分比。您可以在分析中添加计算字段，`(sum(salesAmount - cost)) / sum(salesAmount)`。随后，在分析师深入到地理位置时，将计算每个国家/地区、区域和州/省的该字段。

**Topics**
+ [

## 将计算字段添加到分析
](#using-the-calculated-field-editor-analysis)
+ [

## 将计算字段添加到数据集
](#using-the-calculated-field-editor)
+ [

## 处理计算字段中的十进制值
](#handling-decimal-fields)

## 将计算字段添加到分析


当您将数据集添加到分析中时，数据集中存在的每个计算字段都会添加到分析中。您可以在分析级别添加其他计算字段，以创建仅在该分析中可用的计算字段。

**将计算字段添加到分析**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 打开要更改的分析。

1. 在**数据**窗格中，选择左上角的**添加**，然后选择 **\$1 计算字段**。

   1. 在打开的计算编辑器中，执行以下操作：

   1. 为计算字段输入名称。

   1. 使用数据集、函数和运算符中的字段输入公式。

1. 完成后，选择**保存**。

有关如何使用 Quick Sight 中的可用函数创建公式的更多信息，请参阅[Amazon Quick 的计算字段函数和运算符参考函数和运算符](calculated-field-reference.md)。

## 将计算字段添加到数据集


Amazon Quick Sight 作者可以在数据集创建的数据准备阶段生成计算字段。当您为数据集创建计算字段时，该字段将成为数据集中的新列。所有使用该数据集的分析都会继承该数据集的计算字段。

如果计算字段在行级别运行，并且数据集存储在行级别SPICE，则 Quick Sight 会在中计算并具体化结果。SPICE如果计算字段依赖于聚合函数，Quick Sight 会保留公式并在生成分析时执行计算。此类计算字段称为非具体化计算字段。

**为数据集添加或编辑计算字段**

1. 打开您希望使用的数据集。有关更多信息，请参阅 [编辑数据集](edit-a-data-set.md)。

1. 在“数据准备”页面上，执行以下操作：
   + 要创建新字段，请选择左侧的**添加计算字段**。
   + 要编辑现有的计算字段，请从左侧的**计算字段**中选择该字段，然后从上下文（右键单击）菜单中选择**编辑**。

1. 在计算编辑器中，为**添加标题**输入描述性名称来命名新的计算字段。此名称出现在数据集的字段列表中，因此应与其他字段相似。在本示例中，我们将字段命名为 `Total Sales This Year`。

1. （可选）添加注释，例如用斜杠和星号将文本括起来，以说明表达式的作用。

   ```
   /* Calculates sales per year for this year*/
   ```

1. 确定要使用的指标、函数和其他项目。在本示例中，我们需要确定以下内容：
   + 要使用的指标
   + 函数：`ifelse` 和 `datediff`

   我们想构建一个语句，类似于“如果销售发生在今年，则显示总销售额，否则显示 0。”

   要添加 `ifelse` 函数，请打开**函数**列表。选择**全部**以关闭所有函数的列表。现在，您应该会看到函数组：**聚合**、**条件**、**日期**等。

   选择**条件**，然后双击 `ifelse` 将其添加到工作区。

   ```
   ifelse()
   ```

1. 将光标放在工作区的括号内，然后添加三个空白行。

   ```
   ifelse(
                                               
                                               
                                               
   )
   ```

1. 将光标放在第一个空白行上，找到 `dateDiff` 函数。它列在**日期**下的**函数**中。您也可以通过输入 **date** 使用**搜索功能**查找。`dateDiff` 函数返回名称中包含 *`date`* 的所有函数。它不会返回**日期**下列出的所有函数；例如，搜索结果中缺少 `now` 函数。

   双击 `dateDiff` 将其添加到 `ifelse` 语句的第一个空白行。

   ```
   ifelse(
   dateDiff()                                            
                                               
                                               
   )
   ```

   添加 `dateDiff` 使用的参数。将光标放在 `dateDiff` 括号内以开始添加 `date1`、`date2` 和 `period`：

   1. 对于 `date1`：第一个参数是包含日期的字段。在**字段**下找到它，然后双击它或输入其名称将其添加到工作区。

   1. 对于 `date2`，添加逗号，然后选择 `truncDate()` 作为**函数**。在括号内添加周期和日期，如下所示：**truncDate( "YYYY", now() )**

   1. 对于 `period`：在 `date2` 后面添加逗号并输入 **YYYY**。这是一年的周期。要查看所有支持的周期列表，在**函数**列表中找到 `dateDiff`，然后选择**了解更多**以打开文档。如果您已经像现在一样查看文档，请参阅 [dateDiff](dateDiff-function.md)。

   如果您愿意，可以添加一些空格以提高可读性。表达式应如下所示。

   ```
   ifelse(
      dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" )                                       
                                               
                                               
   )
   ```

1. 指定返回值。在我们的示例中，`ifelse` 中的第一个参数需要返回 `TRUE` 或 `FALSE` 的值。因为我们想要当前年份，并且将其与今年进行比较，所以指定 `dateDiff` 语句应返回 `0`。对于销售年份和当前年份之间没有区别的行，`ifelse` 的 `if` 部分评估为 true。

   ```
      dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 
   ```

   要为去年 `TotalSales` 创建字段，可以将 `0` 更改为 `1`。

   使用 `addDateTime` 而不是 `truncDate`，也能达到同样的目的。然后，对于之前的每一年，更改 `addDateTime` 的第一个参数来代表每一年。为此，您可以使用 `-1` 表示去年，`-2` 表示之前的一年，依此类推。如果您使用 `addDateTime`，则将每年的 `dateDiff` 函数保留为 `= 0`。

   ```
      dateDiff( {Discharge Date}, addDateTime(-1, "YYYY", now() ) ,"YYYY" ) = 0 /* Last year */
   ```

1. 将光标移到 `dateDiff` 下方的第一个空白行。添加逗号。

   对于 `ifelse` 语句的 `then` 部分，我们需要选择包含销售额的度量（指标）`TotalSales`。

   要选择字段，打开**字段**列表，然后双击字段将其添加到屏幕上。或者可以输入名称。在包含空格的名称周围添加大括号 `{ }`。您的指标可能有不同的名称。您可以通过字段前面的数字符号（**\$1**）判断哪个字段是指标。

   现在，表达式应如下所示。

   ```
   ifelse(
      dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0
      ,{TotalSales}                            
                                              
   )
   ```

1. 添加 `else` 子句。`ifelse` 函数不需要子句，但我们想添加。出于报告的目的，您通常不希望有任何 null 值，因为有时会省略带 null 值的行。

   我们将 ifelse 的其余部分设置为 `0`。结果是，对于包含往年销售额的行，该字段为 `0`。

   为此，请在空白行上添加一个逗号，然后添加 `0`。如果您在开头添加了注释，则最终 `ifelse` 表达式应如下所示。

   ```
   /* Calculates sales per year for this year*/
   ifelse(
      dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0
      ,{TotalSales}                            
      ,0                                         
   )
   ```

1. 选择右上角的**保存**以保存您所做的工作。

   如果表达式中有错误，编辑器会在底部显示错误消息。检查表达式中是否有红色的波浪线，然后将光标悬停在该行上以查看错误消息内容。常见错误包括标点符号缺失、参数缺失、拼写错误和数据类型无效。

   要避免进行任何更改，请选择**取消**。

**将参数值添加到计算字段**

1. 您可以在计算字段中引用参数。通过将参数添加到表达式中，可以添加该参数的当前值。

1. 要添加参数，打开**参数**列表，然后选择要包含其值的参数。

1. （可选）要手动向将参数添加到表达式，请键入参数的名称。然后用大括号 `{}` 将其括起来，并加上 `$` 前缀，例如 `${parameterName}`。

您可以更改数据集中任何字段的数据类型，包括计算字段的类型。您只能选择与字段中的数据相匹配的数据类型。

**更改计算字段的数据类型**
+ 对于**计算字段**（左侧），选择要更改的字段，然后从上下文（右键单击）菜单中选择**更改数据类型**。

与数据集中的其他字段不同，计算字段无法禁用。相反，可以将其删除。

**删除计算字段**
+ 对于**计算字段**（左侧），选择要更改的字段，然后从上下文（右键单击）菜单中选择**删除**。

## 处理计算字段中的十进制值


当您的数据集使用直接查询模式时，十进制数据类型的计算由数据集来源引擎的行为决定。在某些特定情况下，Quick Sight 会应用特殊处理来确定输出计算的数据类型。

当您的数据集使用 SPICE 查询模式并且计算字段被具体化时，结果的数据类型取决于特定的函数运算符和输入的数据类型。下表显示了一些数值计算字段的预期行为。

**一元运算符**

下表显示了根据您使用的运算符和输入值的数据类型输出哪种数据类型。例如，如果您在 `abs` 计算中输入一个整数，则输出值的数据类型为整数。


****  
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/adding-a-calculated-field-analysis.html)

**二元运算符**

下表根据您输入的两个值的数据类型显示输出哪种数据类型。例如，对于算术运算符，如果您提供两个整数数据类型，则计算结果将输出为整数。

对于基本运算符（\$1、-、\$1）：


|  | **整数** | **十进制定点** | **十进制浮点** | 
| --- | --- | --- | --- | 
|  **整数**  |  整数  |  十进制定点  |  十进制浮点  | 
|  **十进制定点**  |  十进制定点  |  十进制定点  |  十进制浮点  | 
|  **十进制浮点**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 

对于除法运算符（/）：


|  | **整数** | **十进制定点** | **十进制浮点** | 
| --- | --- | --- | --- | 
|  **整数**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 
|  **十进制定点**  |  十进制浮点  |  十进制定点  |  十进制浮点  | 
|  **十进制浮点**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 

对于指数运算符和模数运算符（^、%）：


|  | **整数** | **十进制定点** | **十进制浮点** | 
| --- | --- | --- | --- | 
|  **整数**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 
|  **十进制定点**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 
|  **十进制浮点**  |  十进制浮点  |  十进制浮点  |  十进制浮点  | 

# Amazon Quick Sight 中的评估顺序
评估顺序

当您打开或更新分析时，在显示分析之前，Amazon Quick Sight 会按特定顺序评估分析中配置的所有内容。Amazon Quick Sight 将配置转换为数据库引擎可以运行的查询。无论您连接到数据库、软件即服务 (SaaS) 源还是 Amazon Quick Sight 分析引擎 ([SPICE](spice.md))，查询都会以类似的方式返回数据。

如果您了解评估配置的顺序，您就知道指示将特定筛选器或计算应用于数据的顺序。

下图显示了评估顺序。左侧的列显示了未涉及等级感知计算窗口（LAC-W）或聚合（LAC-A）函数时的评估顺序。第二列显示了包含要在预筛选条件（`PRE_FILTER`）等级计算 LAC-W 表达式的计算字段的分析评估顺序。第三列显示了包含要在预聚合（`PRE_AGG`）等级计算 LAC-W 表达式的计算字段的分析评估顺序。最后一列显示了包含要计算 LAC-W 表达式的计算字段的分析评估顺序。在下图中，显示了评估顺序的详细说明。有关等级感知计算的更多信息，请参阅 [在 Quick Sight 中使用关卡感知计算](level-aware-calculations.md)。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/order-of-evaluation2.png)


以下列表显示了 Amazon Quick Sight 在您的分析中应用配置的顺序。在数据集中设置的任何内容都在分析之外发生，例如，数据集级别的计算、筛选器和安全设置。它们都应用于基础数据。以下列表仅涵盖分析内发生的内容。

1. **LAC-W 预筛选条件等级**：在分析筛选条件之前按原始表基数评估数据

   1. **简单计算**：在标量等级进行计算，无需任何聚合或窗口计算。例如 `date_metric/60, parseDate(date, 'yyyy/MM/dd'), ifelse(metric > 0, metric, 0), split(string_column, '|' 0)`。

   1. **LAC-W 函数 PRE\$1FILTER**：如果视觉对象中涉及任何 LAC-W PRE\$1FILTER 表达式，则 Amazon Quick Sight 首先在原始表级别计算窗口函数，然后再计算任何筛选器。如果在筛选条件中使用 LAC-W PRE\$1FILTER 表达式，则此时将应用该表达式。例如 `maxOver(Population, [State, County], PRE_FILTER) > 1000`。

1. **LAC-W PRE\$1AGG**：在聚合之前按原始表基数评估数据

   1. **分析期间添加的筛选条件**：此时将应用为视觉对象中的未聚合字段创建的筛选条件，这与 WHERE 子句类似。例如 `year > 2020`。

   1. **LAC-W 函数 PRE\$1AGG**：如果视觉对象中涉及任何 LAC-W PRE\$1AGG 表达式，Amazon Quick Sight 会在应用任何聚合之前计算窗口函数。如果在筛选条件中使用 LAC-W PRE\$1AGG 表达式，则此时将应用该表达式。例如 `maxOver(Population, [State, County], PRE_AGG) > 1000`。

   1. **顶部/底部 N 个筛选器**：在维度上配置为显示 top/bottom N 个项目的筛选器。

1. **LAC-A 等级**：在视觉对象聚合之前，在自定义等级评估聚合

   1. **自定义等级聚合**：如果视觉对象中涉及任何 LAC-A 表达式，则此时会对其进行计算。Amazon 根据上述筛选条件之后的表格QuickSight 计算聚合，并按计算字段中指定的维度进行分组。例如 `max(Sales, [Region])`。

1. **视觉对象等级**：在视觉对象等级评估聚合和聚合后表计算，并将其余配置应用于视觉对象

   1. **视觉对象等级聚合**：应始终应用视觉对象聚合，表格表格除外（其维度为空）。使用此设置，将根据字段井中的字段计算聚合，并按视觉对象中的维度进行分组。如果任何筛选条件构建在聚合之上，则此时将应用该筛选条件，类似于 HAVING 子句。例如 `min(distance) > 100`。

   1. **表计算**：如果视觉对象中引用了任何聚合后表计算（应将聚合表达式作为操作数），则此时会对其进行计算。Amazon Quick Sight 在可视化聚合之后执行窗口计算。同样，也会应用构建在此类计算上的筛选条件。

   1. **其他类别计算**：此类计算仅存在于line/bar/pie/donut图表中。有关更多信息，请参阅 [显示限制](working-with-visual-types.md#display-limits)。

   1. **总计和小计**：如果需要，可以在圆环图（仅限总计）、表格（仅限总计）和数据透视表中计算总计和小计。

# 在 Quick Sight 中使用关卡感知计算
等级感知计算


|  | 
| --- |
|    适用于：企业版和标准版  | 

通过*等级感知计算*（LAC），您可以指定要计算窗口函数或聚合函数的粒度等级。LAC 函数有两种类型：等级感知计算 – 聚合（LAC-A）函数和等级感知计算 – 窗口（LAC-W）函数。

**Topics**
+ [LAC-A 函数](#level-aware-calculations-aggregate)
+ [LAC-A 函数](#level-aware-calculations-window)

## 等级感知计算 – 聚合（LAC-A）函数
LAC-A 函数

通过 LAC-A 函数，您可以指定在哪个等级对计算进行分组。通过向现有聚合函数（例如 `sum() , max() , count()`）添加参数，您可以定义聚合所需的任何分组依据等级。添加的等级可以是任何维度，其独立于添加到视觉对象的维度。例如：

```
sum(measure,[group_field_A])
```

要使用 LAC-A 函数，请在计算编辑器中直接键入这些函数，方法是将预期的聚合等级添加为括号中的第二个参数。以下是用于比较的聚合函数和 LAC-A 函数的示例。
+ 聚合函数：`sum({sales})`
+ LAC-A 函数：`sum({sales}, [{Country},{Product}])`

LAC-A 结果是用方括号 `[ ]` 中的指定级别计算的，可用作聚合函数的操作数。聚合函数的分组依据等级为视觉对象等级，**分组依据**字段添加到视觉对象的字段井中。

除了在方括号 `[ ]` 中创建静态 LAC 组密钥外，您还可以通过在方括号中放置参数 `$visualDimensions` 来使其动态适应视觉对象分组依据字段。这是系统提供的参数，与用户定义的参数截然不同。`[$visualDimensions]` 参数表示添加到当前视觉对象中**分组依据**字段井中的字段。以下示例说明如何将组密钥动态添加到视觉对象维度，或将组密钥从视觉对象维度中移除
+ 带有动态添加组密钥的 LAC-A：`sum({sales}, [${visualDimensions},{Country},{Products}])`

  在计算视觉对象等级聚合之前，它会计算按 `country`、`products` 以及**分组依据**字段井中的任何其他字段分组的销售总额。
+ 带有动态移除组密钥的 LAC-A：`sum({sales}, [${visualDimensions},!{Country},!{Products}])`

  在计算视觉对象等级聚合之前，它会计算按视觉对象**分组依据**字段井中的字段（`country` 和 `product` 除外）分组的销售总额。

您可以在 LAC 表达式中指定添加的组密钥或删除的组密钥，但不能同时指定两者。

以下聚合函数支持 LAC-A 函数：
+ [avg](avg-function.md)
+ [count](count-function.md)
+ [distinct\$1count](distinct_count-function.md)
+ [max](max-function.md)
+ [median](median-function.md)
+ [min](min-function.md)
+ [percentile](percentile-function.md)
+ [percentileCont](percentileCont-function.md)
+ [percentileDisc（百分位数）](percentileDisc-function.md)
+ [stdev](stdev-function.md)
+ [stdevp](stdevp-function.md)
+ [sum](sum-function.md)
+ [var](var-function.md)
+ [varp](varp-function.md)

### LAC-A 示例


您可以使用 LAC-A 函数执行以下操作：
+ 运行独立于与视觉对象中的等级的计算。例如，如果您进行以下计算，则仅汇总国家/地区等级的销售数量，但不汇总视觉对象中其他维度（区域或产品）的销售数量。

  ```
  sum({Sales},[{Country}])
  ```
+ 对不在视觉对象中的维度运行计算。例如，如果您使用以下函数，则可以按区域计算各个国家/地区的平均销售总额。

  ```
  sum({Sales},[{Country}])
  ```

  尽管国家/地区不包含在视觉对象中，但 LAC-A 函数首先汇总国家/地区等级的销售额，然后通过视觉对象等级计算生成每个区域的平均销售额。如果未使用 LAC-A 函数来指定登记，则按每个区域的最低粒度等级（数据集的基本等级）计算平均销售额（显示在销售额列中）。
+ 将 LAC-A 与其他聚合函数和 LAC-W 函数结合使用。有两种方法可以将 LAC-A 函数与其他函数嵌套。
  + 创建计算时，可以编写嵌套语法。例如，LAC-A 函数可以与 LAC-W 函数嵌套，以计算每种产品平均价格的各国家/地区的总销售额：

    ```
    sum(avgOver({Sales},[{Product}],PRE_AGG),[{Country}])
    ```
  + 将 LAC-A 函数添加到视觉对象时，可以将计算与您在字段井中选择的视觉对象等级聚合函数进一步嵌套。有关更改视觉对象中字段聚合的更多信息，请参阅 [使用字段井在字段上更改或添加聚合](changing-field-aggregation.md#change-field-aggregation-field-wells)。

### LAC-A 限制


以下限制适用于 LAC-A 函数：
+ 所有累加性和非累加性聚合函数都支持 LAC-A 函数，例如 `sum()`、`count()` 和 `percentile()`。以 “if” 结尾的条件聚合函数（例如`sumif()`和）不支持 LAC-A 函数`countif()`，也不支持periodToDate以 “” 开头的周期聚合函数，例如`periodToDateSum()`和`periodToDateMax()`。
+ 表和数据透视表中的 LAC-A 函数目前不支持行级和列级总计。在图表中添加行级或列级总计时，总数将显示为空白。其他非 LAC 维度不受影响。
+ 目前不支持嵌套的 LAC-A 函数。支持与常规聚合函数和 LAC-W 函数嵌套的 LAC-A 函数的有限功能。

  例如，有效函数如下所示：
  + `Aggregation(LAC-A())`。例如：`max(sum({sales}, [{country}]))`
  + `LAC-A(LAC-W())`。例如：`sum(sumOver({Sales},[{Product}],PRE_AGG), [{Country}])`

  以下函数无效：
  + `LAC-A(Aggregation())`。例如：`sum(max({sales}), [{country}])`
  + `LAC-A(LAC-A())`。例如：`sum(max({sales}, [{country}]),[category])`
  + `LAC-W(LAC-A())`。例如：`sumOver(sum({Sales},[{Product}]),[{Country}],PRE_AGG)`

## 等级感知计算 – 窗口（LAC-A）函数
LAC-A 函数

通过 LAC-W 函数，您可以指定用于计算的窗口或分区。LAC-W 函数是一组可以在预筛选条件或预聚合等级运行的窗口函数，例如 `sumover()`、`(maxover)`、`denseRank`。例如：`sumOver(measure,[partition_field_A],pre_agg)`。

LAC-W 函数以前称为等级感知聚合（LAA）。

LAC-W 函数可以帮助您回答以下类型的问题：
+ 我有多少客户只下了 1 个采购订单？ 或 11 个？ 或 50 个？ 我们希望视觉对象使用计数作为维度而不是视觉对象中的度量。
+ 对于终身支出超过 10 万美元的客户，每个细分市场的总销售额是多少？ 该视觉对象应只显示细分市场和每个细分市场的总销售额。
+ 每个行业对整个公司利润的贡献（占总利润的百分比）是多少？ 我们希望能够筛选视觉对象以显示一些行业，以及它们如何为所展示行业的总销售额做出贡献。但是，我们还希望看到每个行业占整个公司总销售额的百分比（包括筛选出的行业）。
+ 与行业平均值相比，每个类别的总销售额是多少？ 行业平均值应包括所有类别，即使在筛选后也是如此。
+ 我的客户是如何分组到累积支出范围的？ 我们想使用分组作为维度而不是指标。

对于更复杂的问题，你可以在 Quick Sight 对你的设置进行评估的特定点之前注入计算或过滤器。要直接影响您的结果，您可以将计算级别关键字添加到表计算。有关 Quick Sight 如何评估查询的更多信息，请参阅[Amazon Quick Sight 中的评估顺序](order-of-evaluation-quicksight.md)。

LAC-W 函数支持以下计算等级：
+ **`PRE_FILTER`**— 在应用分析中的筛选器之前，Quick Sight 会评估预过滤器的计算结果。然后，将应用在这些预筛选计算上配置的所有筛选器。
+ **`PRE_AGG`**— 在计算显示屏级别的聚合之前，Quick Sight 会执行预聚合计算。然后，将应用在这些预聚合计算上配置的所有筛选器。此工作发生在应用顶部和底部 *N* 个筛选器之前。

您可以将 `PRE_FILTER` 或 `PRE_AGG` 关键字用作以下表计算函数中的参数。在指定计算级别时，可在函数中使用未聚合的度量。例如，您可以使用 `countOver({ORDER ID}, [{Customer ID}], PRE_AGG)`。通过使用 `PRE_AGG`，您可以指定 `countOver` 在预聚合级别执行。
+ [avgOver](avgOver-function.md)
+ [countOver](countOver-function.md)
+ [denseRank](denseRank-function.md)
+ [distinctCountOver](distinctCountOver-function.md)
+ [minOver](minOver-function.md)
+ [maxOver](maxOver-function.md)
+ [percentileRank](percentileRank-function.md)
+ [rank](rank-function.md)
+ [stdevOver](stdevOver-function.md)
+ [stdevpOver](stdevpOver-function.md)
+ [sumOver](sumOver-function.md)
+ [varOver](varOver-function.md)
+ [varpOver](varpOver-function.md)

默认情况下，每个函数的第一个参数都必须是聚合的度量。如果您使用 `PRE_FILTER` 或 `PRE_AGG`，则对第一个参数使用非聚合度量。

对于 LAC-W 函数，视觉对象聚合默认为 `MIN` 以消除重复项。要更改聚合，请打开字段的上下文菜单（右键单击），然后选择另一个不同聚合。

有关在现实生活场景中何时以及如何使用 LAC-W 函数的示例，请参阅 Amazon 大数据博客中的以下文章：[使用 Amazon 中的关卡感知聚合创建高级见解](https://www.amazonaws.cn/jp/blogs/big-data/create-advanced-insights-using-level-aware-aggregations-in-amazon-quicksight/)。QuickSight

# Amazon Quick 的计算字段函数和运算符参考
函数和运算符

您可以在数据准备期间或从分析页面中向数据集添加计算字段。如果在数据准备期间将计算字段添加到数据集中，则可以在使用该数据集的所有分析中使用该字段。在将一个计算字段添加到分析中的数据集时，只能在此分析中使用该字段。

您可以使用以下函数和运算符来创建计算字段以转换数据。

**Topics**
+ [

# 运算符
](arithmetic-and-comparison-operators.md)
+ [

# 按类别列出函数
](functions-by-category.md)
+ [

# 函数
](functions.md)
+ [

# 聚合函数
](calculated-field-aggregations.md)
+ [

# 表计算函数
](table-calculation-functions.md)

# 运算符


您可以在计算字段中使用以下运算符。Quick 使用标准运算顺序：括号、指数、乘法、除法、加法、减法 (PEMDAS)。等于（=）和不等于（<>）比较区分大小写。
+ 加 (\$1)
+ 减 (−)
+ 乘 (\$1)
+ 除 (/)
+ 取模（%）– 另请参阅以下列表中的 `mod()`。
+ 幂（^）– 另请参阅以下列表中的 `exp()`。
+ 等于 (=)
+ 不等于 (<>)
+ 大于（>）
+ 大于或等于 (>=)
+ 小于（<）
+ 小于或等于（<=）
+ AND
+ 或
+ NOT

Amazon Quick 支持将以下数学函数应用于表达式。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html](https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html)(number, divisor)` – 查找将一个数字除以除数之后的余数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/log-function.html](https://docs.amazonaws.cn/quicksight/latest/user/log-function.html)(expression) ` – 返回给定表达式的以 10 为底的对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html)(expression) ` – 返回给定表达式的自然对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html](https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html)(expression) ` – 返回给定表达式的绝对值。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html)(expression) ` – 返回给定表达式的平方根。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html](https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html)(expression) ` – 返回以自然常数 *e* 为底且以指定表达式为幂的值。

要使冗长的计算更易于阅读，您可以使用圆括号来澄清分组和计算优先级。在以下语句中，不需要圆括号。首先处理乘法语句，然后将结果与 5 相加，返回值 26。但是，圆括号使语句更易于阅读，因此也易于维护。

```
5 + (7 * 3)
```

因为圆括号排在运算顺序的第一位，所以您可以改变运用其他运算符的顺序。例如，在以下语句中，先处理加法语句，然后将结果乘以 3 以返回值 36。

```
(5 + 7) * 3
```

## 示例：算术运算符
多个运算符

以下示例使用多个算术运算符确定扣除折扣后的销售总额。

```
(Quantity * Amount) - Discount
```

## 示例：（/）除法
（/）除法

下面的示例使用除法将 3 除以 2。返回值 1.5。Amazon Quick 使用浮点除法。

```
3/2
```

## 示例：（=）等于
= (等于)

使用 = 执行区分大小写的值比较。比较为 TRUE 的行包括在结果集中。

在以下示例中，在结果中包含 `Region` 字段为 **South** 的行。如果 `Region` 为 **south**，则排除这些行。

```
Region = 'South'
```

在下例中，比较结果为 FALSE。

```
Region = 'south'
```

以下示例显示一个比较，它将 `Region` 全部转换为大写形式 (**SOUTH**)，然后与 **SOUTH** 进行比较。这会返回区域为 **south**、**South** 或 **SOUTH** 的行。

```
toUpper(Region) = 'SOUTH'
```

## 示例：（<>）
<>（不等于）

不等号 <> 意味着*小于或大于*。

因此，如果 **x<>1**，则可以说成 *x 小于 1 或大于 1*。< 和 > 是一起计算的。或者说成 *x 是除 1 以外的任何值*。或者，*x 不等于 1*。

**注意**  
使用 <>，而不是 \$1=。

下例比较 `Status Code` 与数字值。这会返回 `Status Code` 不等于 **1** 的行。

```
statusCode <> 1
```

以下示例比较多个 `statusCode` 值。在此情况下，活动记录具有 `activeFlag = 1`。该示例返回以下条件之一适用的行：
+ 对于活动记录，显示状态不是 1 或 2 的行
+ 对于非活动记录，显示状态为 99 或 -1 的行

```
( activeFlag = 1 AND (statusCode <> 1 AND statusCode <> 2) )
OR
( activeFlag = 0 AND (statusCode= 99 OR statusCode= -1) )
```

## 示例：(^)
^（幂）

幂符号 `^` 表示 * 的 * 次幂。您可以将幂运算符与任何数值字段和任何有效指数一起使用。

以下示例是 2 的 4 次幂或 (2 \$1 2 \$1 2 \$1 2) 的简单表达式。这会返回值 16。

```
2^4
```

以下示例计算收入字段的平方根。

```
revenue^0.5
```

## 示例：AND、OR 和 NOT
使用 AND、OR 和 NOT 运算符来完善您的选择标准。当您需要显示不同比较之间的关系时，这些运算符很有用。

以下示例使用 AND、OR 和 NOT 来比较多个表达式。表达式中使用了条件运算符，以标记不在华盛顿或俄勒冈州、享受特别促销并且订单超过 10 个的最大客户。如果没有返回值，则使用值“n/a”。

```
ifelse(( (NOT (State = 'WA' OR State = 'OR')) AND Orders > 10), 'Special Promotion XYZ', 'n/a')
```

## 示例：创建比较列表如“in”或“not in”
in/not in

此例使用运算符来创建比较，以查找在指定值列表中存在或不存在的值。

以下示例比较 `promoCode` 与一个指定值列表。该示例返回 `promoCode` 位于列表 **(1, 2, 3)** 中的行。

```
promoCode    = 1
OR promoCode = 2
OR promoCode = 3
```

以下示例比较 `promoCode` 与一个指定值列表。该示例返回 `promoCode` 没有位于列表 **(1, 2, 3)** 中的行。

```
NOT(promoCode = 1
OR promoCode  = 2
OR promoCode  = 3
)
```

另一种表示方法是提供一个列表，其中 `promoCode` 不等于列表中的任何项。

```
promoCode     <> 1
AND promoCode <> 2
AND promoCode <> 3
```

## 示例：创建“between”比较
介于

该示例使用比较运算符创建一个比较，以显示介于两个值之间的值。

以下示例检查 `OrderDate` 并返回 `OrderDate` 介于 2016 年第一天与最后一天之间的行。在这种情况下，我们希望包含第一天和最后一天，因此我们在比较运算符上使用了“或等于”。

```
OrderDate >= "1/1/2016" AND OrderDate <= "12/31/2016"
```

# 按类别列出函数


在本节中，您可以找到 Amazon Quick 中按类别排序的可用功能列表。

**Topics**
+ [

## 聚合函数
](#aggregate-functions)
+ [

## 条件函数
](#conditional-functions)
+ [

## 日期函数
](#date-functions)
+ [

## 数字函数
](#numeric-functions)
+ [

## 数学函数
](#mathematical-functions)
+ [

## 字符串函数
](#string-functions)
+ [

## 表计算
](#table-calculations)

## 聚合函数


Amazon Quick 中计算字段的聚合函数包括以下内容。这些仅在分析和可视化期间可用。所有这些函数都会返回按选定的一个或多个维度分组的值。对于每个聚合，还有一个有条件聚合。它们根据条件执行相同类型的聚合。
+ [https://docs.amazonaws.cn/quicksight/latest/user/avg-function.html](https://docs.amazonaws.cn/quicksight/latest/user/avg-function.html) 计算指定度量中的一组数字的平均值，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/avgIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/avgIf-function.html) 根据条件语句计算平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/count-function.html](https://docs.amazonaws.cn/quicksight/latest/user/count-function.html) 计算维度或度量中包含的值的个数，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/countIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/countIf-function.html) 根据条件语句计算计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/distinct_count-function.html](https://docs.amazonaws.cn/quicksight/latest/user/distinct_count-function.html) 计算维度或度量中包含的不同值的个数，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/distinct_countIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/distinct_countIf-function.html) 根据条件语句计算不同值计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/max-function.html](https://docs.amazonaws.cn/quicksight/latest/user/max-function.html) 返回指定度量的最大值，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/maxIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/maxIf-function.html) 根据条件语句计算最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/median-function.html](https://docs.amazonaws.cn/quicksight/latest/user/median-function.html) 返回指定度量的中值，并按照选定的一个或多个维度进行分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/medianIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/medianIf-function.html) 根据条件语句计算中位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/min-function.html](https://docs.amazonaws.cn/quicksight/latest/user/min-function.html) 返回指定度量的最小值，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/minIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/minIf-function.html) 根据条件语句计算最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentile-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentile-function.html)（`percentileDisc` 的别名）计算指定度量的第 *n* 个百分位数，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileCont-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileCont-function.html) 根据指定度量的数字的连续分布计算第 *n* 个百分位数，并按照选定的一个或多个维度分组。
+ [percentileDisc（百分位数）根据指定度量的实际数字（按所选一个或多个维度分组）](https://docs.amazonaws.cn/quicksight/latest/user/percentileDisc-function.html)计算第 *n* 个百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateAvg-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateAvg-function.html) 按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateCount-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateCount-function.html) 按给定时间粒度（例如一个季度）到某个时间点的维度或度量（包括重复项）计算数值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMax-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMax-function.html) 返回给定时间粒度（例如一个季度）到某个时间点的指定度量的最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMedian-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMedian-function.html) 返回给定时间粒度（例如一个季度）到某个时间点的指定度量的中值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMin-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMin-function.html) 返回给定时间粒度（例如一个季度）到某个时间点的指定度量或日期的最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDatePercentile-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDatePercentile-function.html) 按给定时间粒度（例如一个季度）到某个时间点的度量中的实际值计算百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDatePercentileCont-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDatePercentileCont-function.html) 按给定时间粒度（例如一个季度）到某个时间点的度量中数值的连续分布计算百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateStDev-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateStDev-function.html) 根据样本按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的标准差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateStDevP-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateStDevP-function.html) 根据样本按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的总体标准差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateSum-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateSum-function.html) 按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的和。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateVar-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateVar-function.html) 按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的样本方差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateVarP-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateVarP-function.html) 按给定时间粒度（例如一个季度）到某个时间点的指定度量计算一组数字的总体方差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdev-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdev-function.html) 根据样本按指定的度量计算一组数字的标准差，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdevIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdevIf-function.html) 根据条件语句计算样本标准差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdevp-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdevp-function.html) 根据总体偏差计算指定度量中的一组数字的标准差，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdevpIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdevpIf-function.html) 根据条件语句计算总体偏差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/var-function.html](https://docs.amazonaws.cn/quicksight/latest/user/var-function.html) 根据样本按指定的度量计算一组数字的方差，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/varIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/varIf-function.html) 根据条件语句计算样本方差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/varp-function.html](https://docs.amazonaws.cn/quicksight/latest/user/varp-function.html) 根据总体偏差按指定的度量计算一组数字的方差，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/varpIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/varpIf-function.html) 根据条件语句计算总体方差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/sum-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sum-function.html) 按指定的度量对一组数字求和，并按照选定的一个或多个维度分组。
+ [https://docs.amazonaws.cn/quicksight/latest/user/sumIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sumIf-function.html) 根据条件语句计算总和。

## 条件函数


Amazon Quick 中计算字段的条件函数包括以下内容：
+ [https://docs.amazonaws.cn/quicksight/latest/user/coalesce-function.html](https://docs.amazonaws.cn/quicksight/latest/user/coalesce-function.html) 返回第一个不为 null 的参数值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/ifelse-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ifelse-function.html) 对一组 *if*/*then* 表达式对进行计算，并返回计算结果为 true 的第一个 *if* 参数的 *then* 参数值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/in-function.html](https://docs.amazonaws.cn/quicksight/latest/user/in-function.html) 评估一个表达式以查看它是否在给定的值列表中。
+ [https://docs.amazonaws.cn/quicksight/latest/user/isNotNull-function.html](https://docs.amazonaws.cn/quicksight/latest/user/isNotNull-function.html) 对表达式求值以确定其是否为 null。
+ [https://docs.amazonaws.cn/quicksight/latest/user/isNull-function.html](https://docs.amazonaws.cn/quicksight/latest/user/isNull-function.html) 对表达式求值以确定其是否为 null。如果表达式为 null，`isNull` 将返回 true，否则，将返回 false。
+ [https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html](https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html) 评估一个表达式以查看它是否不在给定的值列表中。
+ [https://docs.amazonaws.cn/quicksight/latest/user/nullIf-function.html](https://docs.amazonaws.cn/quicksight/latest/user/nullIf-function.html) 比较两个表达式。如果表达式相等，该函数返回 null。如果表达式不相等，该函数返回第一个表达式。
+ [https://docs.amazonaws.cn/quicksight/latest/user/switch-function.html](https://docs.amazonaws.cn/quicksight/latest/user/switch-function.html) 返回与第一个等于条件表达式的标签相匹配的表达式。

## 日期函数


Amazon Quick 中计算字段的日期函数包括以下内容：
+ [https://docs.amazonaws.cn/quicksight/latest/user/addDateTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/addDateTime-function.html) 在提供的日期或时间中增加或减少时间单位。
+ [https://docs.amazonaws.cn/quicksight/latest/user/addWorkDays-function.html](https://docs.amazonaws.cn/quicksight/latest/user/addWorkDays-function.html) 将给定的工作日数与提供的日期或时间相加或相减。
+ [https://docs.amazonaws.cn/quicksight/latest/user/dateDiff-function.html](https://docs.amazonaws.cn/quicksight/latest/user/dateDiff-function.html) 返回两个日期字段相差的天数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/epochDate-function.html](https://docs.amazonaws.cn/quicksight/latest/user/epochDate-function.html) 将纪元日期转换为标准日期。
+ [https://docs.amazonaws.cn/quicksight/latest/user/extract-function.html](https://docs.amazonaws.cn/quicksight/latest/user/extract-function.html) 返回日期值的指定部分。
+ [https://docs.amazonaws.cn/quicksight/latest/user/formatDate-function.html](https://docs.amazonaws.cn/quicksight/latest/user/formatDate-function.html) 使用您指定的模式格式化日期。
+ 如果给定的日期时间值是工作日，[https://docs.amazonaws.cn/quicksight/latest/user/isWorkDay-function.html](https://docs.amazonaws.cn/quicksight/latest/user/isWorkDay-function.html) 返回 TRUE。
+ [https://docs.amazonaws.cn/quicksight/latest/user/netWorkDays-function.html](https://docs.amazonaws.cn/quicksight/latest/user/netWorkDays-function.html) 返回所提供的两个日期值之间的工作日数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/now-function.html](https://docs.amazonaws.cn/quicksight/latest/user/now-function.html) 返回当前日期和时间，同时将设置用于数据库，或将 UTC 用于文件和 Salesforce。
+ [https://docs.amazonaws.cn/quicksight/latest/user/truncDate-function.html](https://docs.amazonaws.cn/quicksight/latest/user/truncDate-function.html) 返回表示日期指定部分的日期值。

## 数字函数


Amazon Quick 中计算字段的数值函数包括以下内容：
+ [https://docs.amazonaws.cn/quicksight/latest/user/ceil-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ceil-function.html) 将小数值向上舍入为大于它的最接近整数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/decimalToInt-function.html](https://docs.amazonaws.cn/quicksight/latest/user/decimalToInt-function.html) 将小数值转换为整数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/floor-function.html](https://docs.amazonaws.cn/quicksight/latest/user/floor-function.html) 将小数值向下舍入到小于它的最接近整数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/intToDecimal-function.html](https://docs.amazonaws.cn/quicksight/latest/user/intToDecimal-function.html) 将整数值转换为小数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/round-function.html](https://docs.amazonaws.cn/quicksight/latest/user/round-function.html) 将小数值舍入为最接近的整数，或者，如果指定了精度，则舍入到最接近的小数位数。

## 数学函数


Amazon Quick 中计算字段的数学函数包括以下内容：
+ `[https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html](https://docs.amazonaws.cn/quicksight/latest/user/mod-function.html)(number, divisor)` – 查找将一个数字除以除数之后的余数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/log-function.html](https://docs.amazonaws.cn/quicksight/latest/user/log-function.html)(expression) ` – 返回给定表达式的以 10 为底的对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ln-function.html)(expression) ` – 返回给定表达式的自然对数。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html](https://docs.amazonaws.cn/quicksight/latest/user/abs-function.html)(expression) ` – 返回给定表达式的绝对值。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sqrt-function.html)(expression) ` – 返回给定表达式的平方根。
+ `[https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html](https://docs.amazonaws.cn/quicksight/latest/user/exp-function.html)(expression) ` – 返回以自然常数 *e* 为底且以指定表达式为幂的值。

## 字符串函数


Amazon Quick 中计算字段的字符串（文本）函数包括以下内容：
+ [https://docs.amazonaws.cn/quicksight/latest/user/concat-function.html](https://docs.amazonaws.cn/quicksight/latest/user/concat-function.html) 连接两个或多个字符串。
+ [https://docs.amazonaws.cn/quicksight/latest/user/contains-function.html](https://docs.amazonaws.cn/quicksight/latest/user/contains-function.html) 检查表达式是否包含子字符串。
+ [https://docs.amazonaws.cn/quicksight/latest/user/endsWith-function.html](https://docs.amazonaws.cn/quicksight/latest/user/endsWith-function.html) 检查表达式是否以指定的子字符串结尾。
+ [https://docs.amazonaws.cn/quicksight/latest/user/left-function.html](https://docs.amazonaws.cn/quicksight/latest/user/left-function.html) 返回字符串最左侧指定数量的字符。
+ [https://docs.amazonaws.cn/quicksight/latest/user/locate-function.html](https://docs.amazonaws.cn/quicksight/latest/user/locate-function.html) 查找另一个字符串内的某个子字符串，并返回该子字符串之前的字符数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/ltrim-function.html](https://docs.amazonaws.cn/quicksight/latest/user/ltrim-function.html) 从字符串中移除前置空格。
+ [https://docs.amazonaws.cn/quicksight/latest/user/parseDate-function.html](https://docs.amazonaws.cn/quicksight/latest/user/parseDate-function.html) 解析一个字符串，以确定它是否包含某个日期值，如果找到则返回该日期。
+ [https://docs.amazonaws.cn/quicksight/latest/user/parseDecimal-function.html](https://docs.amazonaws.cn/quicksight/latest/user/parseDecimal-function.html) 解析字符串以确定其是否包含小数值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/parseInt-function.html](https://docs.amazonaws.cn/quicksight/latest/user/parseInt-function.html) 解析字符串以确定其是否包含整数值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/parseJson-function.html](https://docs.amazonaws.cn/quicksight/latest/user/parseJson-function.html) 解析来自本机 JSON 或文本字段中 JSON 对象的值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/replace-function.html](https://docs.amazonaws.cn/quicksight/latest/user/replace-function.html) 将一个字符串的一部分用新字符串替换。
+ [https://docs.amazonaws.cn/quicksight/latest/user/right-function.html](https://docs.amazonaws.cn/quicksight/latest/user/right-function.html) 返回字符串最右侧指定数量的字符。
+ [https://docs.amazonaws.cn/quicksight/latest/user/rtrim-function.html](https://docs.amazonaws.cn/quicksight/latest/user/rtrim-function.html) 从字符串中移除尾随空格。
+ [https://docs.amazonaws.cn/quicksight/latest/user/split-function.html](https://docs.amazonaws.cn/quicksight/latest/user/split-function.html) 根据您选择的分隔符将字符串拆分为一个子字符串数组，并返回由位置指定的项目。
+ [https://docs.amazonaws.cn/quicksight/latest/user/startsWith-function.html](https://docs.amazonaws.cn/quicksight/latest/user/startsWith-function.html) 检查表达式是否以指定的子字符串开头。
+ [https://docs.amazonaws.cn/quicksight/latest/user/strlen-function.html](https://docs.amazonaws.cn/quicksight/latest/user/strlen-function.html) 返回一个字符串中的字符数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/substring-function.html](https://docs.amazonaws.cn/quicksight/latest/user/substring-function.html) 从指定位置开始，返回一个字符串中指定数量的字符。
+ [https://docs.amazonaws.cn/quicksight/latest/user/toLower-function.html](https://docs.amazonaws.cn/quicksight/latest/user/toLower-function.html) 将字符串全部转为小写格式。
+ [https://docs.amazonaws.cn/quicksight/latest/user/toString-function.html](https://docs.amazonaws.cn/quicksight/latest/user/toString-function.html) 将输入表达式转为字符串格式。
+ [https://docs.amazonaws.cn/quicksight/latest/user/toUpper-function.html](https://docs.amazonaws.cn/quicksight/latest/user/toUpper-function.html) 将字符串全部转为大写格式。
+ [https://docs.amazonaws.cn/quicksight/latest/user/trim-function.html](https://docs.amazonaws.cn/quicksight/latest/user/trim-function.html) 从字符串中同时移除前置和尾随空格。

## 表计算


表计算由一组在分析中提供上下文的函数组成。它们为扩充的聚合分析提供支持。通过使用这些计算，您可以满足常见的业务方案要求，如计算总数的百分比、运行总和、差值、常见基准和排名。

在分析特定视觉对象中的数据时，您可以将表计算应用于当前数据集，以了解维度如何影响度量或它们如何相互影响。可视化数据是基于当前数据集的结果集，并应用了所有筛选条件、字段选择和自定义项。要查看该结果集的确切内容，您可以将视觉对象导出为文件。表计算函数 对数据执行运算以显示字段之间的关系。

**基于查找的函数**
+ [https://docs.amazonaws.cn/quicksight/latest/user/difference-function.html](https://docs.amazonaws.cn/quicksight/latest/user/difference-function.html) 计算基于一组分区和排序的度量与基于另一组分区和排序的度量之间的差值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/lag-function.html](https://docs.amazonaws.cn/quicksight/latest/user/lag-function.html) 计算度量的滞后（上一个）值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/lead-function.html](https://docs.amazonaws.cn/quicksight/latest/user/lead-function.html) 计算度量的前导（下一个）值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentDifference-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentDifference-function.html) 计算当前值和比较值之间的百分比差值。

**Over 函数**
+ [https://docs.amazonaws.cn/quicksight/latest/user/avgOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/avgOver-function.html) 计算度量在一个或多个维度中的平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/countOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/countOver-function.html) 计算字段在一个或多个维度中的计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/distinctCountOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/distinctCountOver-function.html) 计算指定等级上按指定属性划分的操作数的不同计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/maxOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/maxOver-function.html) 计算度量在一个或多个维度中的最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/minOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/minOver-function.html) 度量在一个或多个维度中的最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileOver-function.html)（`percentileDiscOver` 的别名）计算按维度列表分区的度量的第 *n* 个百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileContOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileContOver-function.html) 根据按维度列表分区的度量的数字的连续分布计算第 *n* 个百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileDiscOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileDiscOver-function.html) 根据按维度列表分区的度量的实际数字计算第 *n* 个百分位数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentOfTotal-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentOfTotal-function.html) 计算度量在总数中所占的百分比。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodDifference-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodDifference-function.html) 计算按期间粒度和偏移量指定的两个不同时间段内的度量差异。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodLastValue-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodLastValue-function.html) 计算按周期粒度和偏移量指定的上一个时间段中度量的最后一个（上一个）值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodPercentDifference-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodOverPeriodPercentDifference-function.html) 计算按期间粒度和偏移量指定的两个不同时间段内的度量差异百分比。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateAvgOverTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateAvgOverTime-function.html) 计算给定时间粒度（例如一个季度）到某个时间点的度量的平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateCountOverTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateCountOverTime-function.html) 计算给定时间粒度（例如一个季度）到某个时间点的维度或度量的计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMaxOverTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMaxOverTime-function.html) 计算给定时间粒度（例如一个季度）到某个时间点的维度或日期的最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMinOverTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateMinOverTime-function.html) 计算给定时间粒度（例如一个季度）到某个时间点的维度或日期的最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/periodToDateSumOverTime-function.html](https://docs.amazonaws.cn/quicksight/latest/user/periodToDateSumOverTime-function.html) 计算给定时间粒度（例如一个季度）到某个时间点的度量的总和。
+ [https://docs.amazonaws.cn/quicksight/latest/user/sumOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/sumOver-function.html) 计算度量在一个或多个维度中的总和。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdevOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdevOver-function.html) 根据样本计算按选定的一个属性或多个属性划分的指定度量的标准差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/stdevpOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/stdevpOver-function.html) 根据总体偏差计算按选定的一个属性或多个属性划分的指定度量的标准差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/varOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/varOver-function.html) 根据样本计算按选定的一个属性或多个属性划分的指定度量的方差。
+ [https://docs.amazonaws.cn/quicksight/latest/user/varpOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/varpOver-function.html) 根据总体偏差计算按选定的一个属性或多个属性划分的指定度量的方差。

**排名函数**
+ [https://docs.amazonaws.cn/quicksight/latest/user/rank-function.html](https://docs.amazonaws.cn/quicksight/latest/user/rank-function.html) 计算度量或维度的排名。
+ [https://docs.amazonaws.cn/quicksight/latest/user/denseRank-function.html](https://docs.amazonaws.cn/quicksight/latest/user/denseRank-function.html) 计算度量或维度的排名，忽略重复值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileRank-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileRank-function.html) 根据百分位数计算指标或维度的排名。

**运行函数**
+ [https://docs.amazonaws.cn/quicksight/latest/user/runningAvg-function.html](https://docs.amazonaws.cn/quicksight/latest/user/runningAvg-function.html) 计算度量的运行平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/runningCount-function.html](https://docs.amazonaws.cn/quicksight/latest/user/runningCount-function.html) 计算度量的运行计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/runningMax-function.html](https://docs.amazonaws.cn/quicksight/latest/user/runningMax-function.html) 计算度量的运行最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/runningMin-function.html](https://docs.amazonaws.cn/quicksight/latest/user/runningMin-function.html) 计算度量的运行最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/runningSum-function.html](https://docs.amazonaws.cn/quicksight/latest/user/runningSum-function.html) 计算度量的运行总和。

**窗口函数**
+ [https://docs.amazonaws.cn/quicksight/latest/user/firstValue-function.html](https://docs.amazonaws.cn/quicksight/latest/user/firstValue-function.html) 计算按指定属性划分和排序的聚合度量或维度的第一个值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/lastValue-function.html](https://docs.amazonaws.cn/quicksight/latest/user/lastValue-function.html) 计算按指定属性划分和排序的聚合度量或维度的最后一个值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/windowAvg-function.html](https://docs.amazonaws.cn/quicksight/latest/user/windowAvg-function.html) 计算按指定属性进行分区和排序的自定义窗口中聚合度量的平均值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/windowCount-function.html](https://docs.amazonaws.cn/quicksight/latest/user/windowCount-function.html) 计算按指定属性进行分区和排序的自定义窗口中聚合度量的计数。
+ [https://docs.amazonaws.cn/quicksight/latest/user/windowMax-function.html](https://docs.amazonaws.cn/quicksight/latest/user/windowMax-function.html) 计算按指定属性进行分区和排序的自定义窗口中聚合度量的最大值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/windowMin-function.html](https://docs.amazonaws.cn/quicksight/latest/user/windowMin-function.html) 计算按指定属性进行分区和排序的自定义窗口中聚合度量的最小值。
+ [https://docs.amazonaws.cn/quicksight/latest/user/windowSum-function.html](https://docs.amazonaws.cn/quicksight/latest/user/windowSum-function.html) 计算按指定属性进行分区和排序的自定义窗口中聚合度量的总和。

# 函数


在本节中，您可以找到 Amazon Quick 中提供的功能列表。要查看按类别排序的函数列表以及简要定义，请参阅[按类别划分的函数](https://docs.amazonaws.cn/quicksight/latest/user/functions-by-category.html)。

**Topics**
+ [

# addDateTime
](addDateTime-function.md)
+ [

# addWorkDays
](addWorkDays-function.md)
+ [

# Abs
](abs-function.md)
+ [

# Ceil
](ceil-function.md)
+ [

# Coalesce
](coalesce-function.md)
+ [

# Concat
](concat-function.md)
+ [

# contains
](contains-function.md)
+ [

# decimalToInt
](decimalToInt-function.md)
+ [

# dateDiff
](dateDiff-function.md)
+ [

# endsWith
](endsWith-function.md)
+ [

# epochDate
](epochDate-function.md)
+ [

# Exp
](exp-function.md)
+ [

# Extract
](extract-function.md)
+ [

# Floor
](floor-function.md)
+ [

# formatDate
](formatDate-function.md)
+ [

# Ifelse
](ifelse-function.md)
+ [

# in
](in-function.md)
+ [

# intToDecimal
](intToDecimal-function.md)
+ [

# isNotNull
](isNotNull-function.md)
+ [

# isNull
](isNull-function.md)
+ [

# isWorkDay
](isWorkDay-function.md)
+ [

# Left
](left-function.md)
+ [

# Locate
](locate-function.md)
+ [

# Log
](log-function.md)
+ [

# Ln
](ln-function.md)
+ [

# Ltrim
](ltrim-function.md)
+ [

# Mod
](mod-function.md)
+ [

# netWorkDays
](netWorkDays-function.md)
+ [

# Now
](now-function.md)
+ [

# notIn
](notIn-function.md)
+ [

# nullIf
](nullIf-function.md)
+ [

# parseDate
](parseDate-function.md)
+ [

# parseDecimal
](parseDecimal-function.md)
+ [

# parseInt
](parseInt-function.md)
+ [

# parseJson
](parseJson-function.md)
+ [

# Replace
](replace-function.md)
+ [

# Right
](right-function.md)
+ [

# Round
](round-function.md)
+ [

# Rtrim
](rtrim-function.md)
+ [

# Split
](split-function.md)
+ [

# Sqrt
](sqrt-function.md)
+ [

# startsWith
](startsWith-function.md)
+ [

# Strlen
](strlen-function.md)
+ [

# Substring
](substring-function.md)
+ [

# switch
](switch-function.md)
+ [

# toLower
](toLower-function.md)
+ [

# toString
](toString-function.md)
+ [

# toUpper
](toUpper-function.md)
+ [

# trim
](trim-function.md)
+ [

# truncDate
](truncDate-function.md)

# addDateTime


`addDateTime` 在一个日期时间值中加上或减去一个时间单位。例如，`addDateTime(2,'YYYY',parseDate('02-JUL-2018', 'dd-MMM-yyyy') )` 将返回 `02-JUL-2020`。您可以使用该函数对日期和时间数据执行日期运算。

## 语法


```
addDateTime(amount, period, datetime)
```

## Arguments


 *amount*   
一个正或负的整数值，表示您希望在提供的日期时间字段中增加或减少的时间。

 *时段*   
一个正值或负值，表示您希望在提供的日期时间字段中增加或减少的时间。有效时间段如下所示：  
+ YYYY：返回日期的年份部分。
+ Q：返回日期所属的季度（1–4）。
+ MM：返回日期的月份部分。
+ DD：返回日期的日期部分。
+ WK：返回日期的星期部分。在 Amazon Quick 中，本周从周日开始。
+ HH：返回日期的小时部分。
+ MI：返回日期的分钟部分。
+ SS：返回日期的秒部分。
+ MS：返回日期的毫秒部分。

 *datetime*   
您希望执行日期运算的日期或时间。

## 返回类型


日期时间

## 示例


假设您具有一个名为 `purchase_date` 并具有以下值的字段。

```
2018 May 13 13:24
2017 Jan 31 23:06
2016 Dec 28 06:45
```

通过使用以下计算，`addDateTime` 修改这些值，如下所示。

```
addDateTime(-2, 'YYYY', purchaseDate)

2016 May 13 13:24
2015 Jan 31 23:06
2014 Dec 28 06:45


addDateTime(4, 'DD', purchaseDate)

2018 May 17 13:24
2017 Feb 4 23:06
2017 Jan 1 06:45


addDateTime(20, 'MI', purchaseDate)

2018 May 13 13:44
2017 Jan 31 23:26
2016 Dec 28 07:05
```

# addWorkDays


`addWorkDays` 将指定的工作日数与给定的日期值相加或相减。该函数返回工作日的日期，该日期落在给定输入日期值之后或之前的指定工作日。

## 语法


```
addWorkDays(initDate, numWorkDays)
```

## Arguments


*initDate*  
用作计算开始日期的有效非 NULL 日期。  
+ **数据集字段** – 要向其添加此函数的数据集中的任何 `date` 字段。
+ **日期函数** – 从其他 `date` 函数输出的任何日期，例如 `parseDate`、`epochDate`、`addDateTime` 等。  
**Example**  

  ```
  addWorkDays(epochDate(1659484800), numWorkDays)
  ```
+ **计算字段**-任何返回`date`值的快速计算字段。  
**Example**  

  ```
  calcFieldStartDate = addDateTime(10, “DD”, startDate)
  addWorkDays(calcFieldStartDate, numWorkDays)
  ```
+ **参数**-任何 Quick `datetime` 参数。  
**Example**  

  ```
  addWorkDays($paramStartDate, numWorkDays)
  ```
+ 上述参数值的任意组合。

 *numWorkDays*   
用作计算结束日期的非 NULL 整数。  
+ **文本** – 直接在表达式编辑器中键入的整数文本。  
**Example**  

  ```
  ```
+ **数据集字段** – 数据集中的任何日期字段   
**Example**  

  ```
  ```
+ **标量函数或计算**-任何从另一个函数返回整数输出的标量 Quick 函数`decimalToInt`，例如`abs`，等等。  
**Example**  

  ```
  addWorkDays(initDate, decimalToInt(sqrt (abs(numWorkDays)) ) )
  ```
+ **计算字段**-任何返回`date`值的快速计算字段。  
**Example**  

  ```
  someOtherIntegerCalcField = (num_days * 2) + 12
  addWorkDays(initDate, someOtherIntegerCalcField)
  ```
+ **参数**-任何 Quick `datetime` 参数。  
**Example**  

  ```
  addWorkDays(initDate, $param_numWorkDays)
  ```
+ 上述参数值的任意组合。

## 返回类型


整数 

## 输出值


预期的输出值包括：
+ 正整数（当 start\$1date < end\$1date 时）
+ 负整数（当 start\$1date > end\$1date 时）
+ 当其中一个或两个参数从 `dataset field` 中获得空值时，则为 NULL。

## 输入错误


不允许使用的参数值会导致错误，如以下示例所示。
+ 不允许在表达式中使用文本 NULL 作为参数。  
**Example**  

  ```
  addWorkDays(NULL, numWorkDays) 
  ```  
**Example**  

  ```
  Error
  At least one of the arguments in this function does not have correct type. 
  Correct the expression and choose Create again.
  ```
+ 不允许在表达式中使用字符串文本作为参数，或者使用除日期之外的任何其他数据类型。在以下示例中，字符串 **"2022-08-10"** 看起来像日期，但实际上是一个字符串。要使用该字符串，您必须使用可转换为日期数据类型的函数。  
**Example**  

  ```
  addWorkDays("2022-08-10", 10)
  ```  
**Example**  

  ```
  Error
  Expression addWorkDays("2022-08-10", numWorkDays) for function addWorkDays has 
  incorrect argument type addWorkDays(String, Number). 
  Function syntax expects Date, Integer.
  ```

## 示例


正整数作为 `numWorkDays` 参数将生成输入日期将来的日期。负整数作为 `numWorkDays` 参数将生成输入日期过去的结果日期。无论输入日期是工作日还是周末，`numWorkDays` 参数的零值都生成与输入日期相同的值。

`addWorkDays` 函数的运算粒度为：`DAY`。在任何低于或高于 `DAY` 等级的粒度下都无法保持准确度。

```
addWorkDays(startDate, endDate)
```

假设有一个名为 `employmentStartDate` 的字段，其值如下：

```
2022-08-10 2022-08-06 2022-08-07 
```

使用上面的字段并进行以下计算，`addWorkDays` 返回修改后的值，如下所示：

```
addWorkDays(employmentStartDate, 7)

2022-08-19 
2022-08-16 
2022-08-16 

addWorkDays(employmentStartDate, -5)

2022-08-02 
2022-08-01 
2022-08-03 

addWorkDays(employmentStartDate, 0)

2022-08-10 
2022-08-06 
2022-08-07
```

以下示例根据每位员工的实际工作天数计算 2 年内支付给每位员工的按比例奖金总额。

```
last_day_of_work = addWorkDays(employment_start_date, 730)
total_days_worked = netWorkDays(employment_start_date, last_day_of_work)
total_bonus = total_days_worked * bonus_per_day
```

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/addWorkDays-function-example.png)


# Abs


`abs` 返回给定表达式的绝对值。

## 语法


```
abs(expression)
```

## Arguments


 *expression*   
表达式必须是数字。它可以是字段名、文本值或其他函数。

# Ceil


`ceil` 将小数值向上舍入为大于它的最接近整数。例如，`ceil(29.02)` 将返回 `30`。

## 语法


```
ceil(decimal)
```

## Arguments


 *decimal*   
使用小数数据类型的字段、文本值（如 **17.62**）或对输出小数的其他函数的调用。

## 返回类型


整数

## 示例


以下示例将一个小数字段向上舍入为大于它的最接近整数。

```
ceil(salesAmount)
```

以下是给定的字段值。

```
20.13
892.03
57.54
```

对于这些字段值，将返回以下值。

```
21
893
58
```

# Coalesce


`coalesce` 返回第一个不为 null 的参数值。当找到非 null 值时，将不计算该列表中的剩余参数。如果所有参数都为 null，则结果为 null。0 长度字符串是有效值，系统不将其等同于 null。

## 语法


```
coalesce(expression1, expression2 [, expression3, ...])
```

## Arguments


`coalesce` 接受两个或多个表达式作为参数。所有表达式必须具有相同的数据类型或能够隐式转换为相同的数据类型。

 *expression*   
该表达式可以是数字、日期时间或字符串。它可以是字段名、文本值或其他函数。

## 返回类型


`coalesce` 返回数据类型与输入参数相同的值。

## 示例


下面的示例检索某位客户的账单地址（如果存在）、其街道地址（如果没有账单地址）或返回“No address listed (未列出地址)”（如果两个地址都不存在）。

```
coalesce(billingAddress, streetAddress, 'No address listed')
```

# Concat
Concat

`concat` 连接两个或多个字符串。

## 语法


```
concat(expression1, expression2 [, expression3 ...])
```

## Arguments


`concat` 接受两个或多个字符串表达式作为参数。

 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例连接三个字符串字段，并添加适当的间距。

```
concat(salutation, ' ', firstName, ' ', lastName)
```

以下是给定的字段值。

```
salutation     firstName          lastName
-------------------------------------------------------
Ms.            Li                  Juan
Dr.            Ana Carolina        Silva
Mr.            Nikhil              Jayashankar
```

对于这些字段值，将返回以下值。

```
Ms. Li Juan
Dr. Ana Carolina Silva
Mr. Nikhil Jayashankar
```

以下示例连接两个字符串文本值。

```
concat('Hello', 'world')
```

将返回以下值。

```
Helloworld
```

# contains
contains

`contains` 评估您指定的子字符串是否存在于表达式中。如果表达式包含子字符串，则返回 true，否则返回 false。

## 语法


```
contains(expression, substring, string-comparison-mode)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *substring*   
要根据*表达式*检查的字符集。子字符串可在*表达式*中出现一次或多次。

 *string-comparison-mode*   
（可选）指定要使用的字符串比较模式：  
+ `CASE_SENSITIVE` – 字符串比较区分大小写。
+ `CASE_INSENSITIVE` – 字符串比较不区分大小写。
留空时此值默认为 `CASE_SENSITIVE`。

## 返回类型


布尔值

## 示例


### 默认区分大小写的示例


以下区分大小写的示例评估 `state_nm` 是否包含 **New**。

```
contains(state_nm, "New")
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
false
```

### 不区分大小写的示例


以下不区分大小写的示例评估 `state_nm` 是否包含 **new**。

```
contains(state_nm, "new", CASE_INSENSITIVE)
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
true
```

### 带条件语句的示例


包含函数可用作以下 If 函数中的条件语句：[avgIf](https://docs.amazonaws.cn/quicksight/latest/user/avgIf-function.html)、[minIf](https://docs.amazonaws.cn/quicksight/latest/user/minIf-function.html)、[distinct\$1countIf](https://docs.amazonaws.cn/quicksight/latest/user/distinct_countIf-function.html)、[countIf](https://docs.amazonaws.cn/quicksight/latest/user/countIf-function.html)、[maxIf](https://docs.amazonaws.cn/quicksight/latest/user/maxIf-function.html)、[medianIf](https://docs.amazonaws.cn/quicksight/latest/user/medianIf-function.html)、[stdevIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevIf-function.html)、[stdevpIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevpIf-function.html)、[sumIf](https://docs.amazonaws.cn/quicksight/latest/user/sumIf-function.html)、[varIf](https://docs.amazonaws.cn/quicksight/latest/user/varIf-function.html) 和 [varpIf](https://docs.amazonaws.cn/quicksight/latest/user/varpIf-function.html)。

以下示例仅在 `state_nm` 包含 **New** 时才对 `Sales` 进行求和。

```
sumIf(Sales,contains(state_nm, "New"))
```

### 不包含示例


条件 `NOT` 运算符可用于评估表达式是否不包含指定的子字符串。

```
NOT(contains(state_nm, "New"))
```

### 使用数值的示例


通过应用 `toString` 函数，可以在表达式或子字符串参数中使用数值。

```
contains(state_nm, toString(5) )
```

# decimalToInt


`decimalToInt` 删除小数点和后面的数字以将小数值转换为整数数据类型。`decimalToInt` 不向上舍入。例如，`decimalToInt(29.99)` 将返回 `29`。

## 语法


```
decimalToInt(decimal)
```

## Arguments


 *decimal*   
使用小数数据类型的字段、文本值（如 **17.62**）或对输出小数的其他函数的调用。

## 返回类型


整数

## 示例


以下示例将一个小数字段转换为整数。

```
decimalToInt(salesAmount)
```

以下是给定的字段值。

```
 20.13
892.03
 57.54
```

对于这些字段值，将返回以下值。

```
 20
892
 57
```

# dateDiff


`dateDiff` 返回两个日期字段相差的天数。如果包含期间的值，则 `dateDiff` 返回期间间隔中的差异，而不是天数差异。

## 语法


```
dateDiff(date1, date2,[period])
```

## Arguments


`dateDiff` 接受两个日期作为参数。指定期间是可选的。

 *日期 1*   
比较中的第一个日期。它可以是日期字段，也可以是对输出日期的其他函数的调用。

 *日期 2*   
比较中的第二个日期。它可以是日期字段，也可以是对输出日期的其他函数的调用。

 *时段*   
要返回的差异的期间（用引号括起来）。有效时间段如下所示：  
+ YYYY：返回日期的年份部分。
+ 问：这将返回日期所属季度的第一天的日期。
+ MM：返回日期的月份部分。
+ DD：返回日期的日期部分。
+ WK：返回日期的星期部分。在 Amazon Quick 中，本周从周日开始。
+ HH：返回日期的小时部分。
+ MI：返回日期的分钟部分。
+ SS：返回日期的秒部分。
+ MS：返回日期的毫秒部分。

## 返回类型


整数

## 示例


以下示例返回两个日期相差的天数。

```
dateDiff(orderDate, shipDate, "MM")
```

以下是给定的字段值。

```
orderDate          shipdate
=============================
01/01/18            03/05/18
09/13/17            10/20/17
```

对于这些字段值，将返回以下值。

```
2
1
```

# endsWith
endsWith

`endsWith` 评估表达式是否以您指定的子字符串结尾。如果表达式以子字符串结尾，`endsWith` 返回 true，否则返回 false。

## 语法


```
endsWith(expression, substring, string-comparison-mode)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *substring*   
要根据*表达式*检查的字符集。子字符串可在*表达式*中出现一次或多次。

 *string-comparison-mode*   
（可选）指定要使用的字符串比较模式：  
+ `CASE_SENSITIVE` – 字符串比较区分大小写。
+ `CASE_INSENSITIVE` – 字符串比较不区分大小写。
留空时此值默认为 `CASE_SENSITIVE`。

## 返回类型


布尔值

## 示例


### 默认区分大小写的示例


以下区分大小写的示例评估 `state_nm` 是否以 **"York"** 结尾。

```
endsWith(state_nm, "York")
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
false
```

### 不区分大小写的示例


以下不区分大小写的示例评估 `state_nm` 是否以 **"york"** 结尾。

```
endsWith(state_nm, "york", CASE_INSENSITIVE)
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
true
```

### 带条件语句的示例


`endsWith` 函数可用作以下 If 函数中的条件语句：[avgIf](https://docs.amazonaws.cn/quicksight/latest/user/avgIf-function.html)、[minIf](https://docs.amazonaws.cn/quicksight/latest/user/minIf-function.html)、[distinct\$1countIf](https://docs.amazonaws.cn/quicksight/latest/user/distinct_countIf-function.html)、[countIf](https://docs.amazonaws.cn/quicksight/latest/user/countIf-function.html)、[maxIf](https://docs.amazonaws.cn/quicksight/latest/user/maxIf-function.html)、[medianIf](https://docs.amazonaws.cn/quicksight/latest/user/medianIf-function.html)、[stdevIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevIf-function.html)、[stdevpIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevpIf-function.html)、[sumIf](https://docs.amazonaws.cn/quicksight/latest/user/sumIf-function.html)、[varIf](https://docs.amazonaws.cn/quicksight/latest/user/varIf-function.html) 和 [varpIf](https://docs.amazonaws.cn/quicksight/latest/user/varpIf-function.html)。

以下示例仅在 `state_nm` 以 **"York"** 结尾为时才对 `Sales` 进行求和。

```
sumIf(Sales,endsWith(state_nm, "York"))
```

### 不包含示例


条件 `NOT` 运算符可用于评估表达式是否不以指定的子字符串开头。

```
NOT(endsWith(state_nm, "York"))
```

### 使用数值的示例


通过应用 `toString` 函数，可以在表达式或子字符串参数中使用数值。

```
endsWith(state_nm, toString(5) )
```

# epochDate


`epochDate`[使用 Joda 项目文档中类中指定的格式模式语法，将纪元日期转换为 yyyy-mm-dd **T** kk: mm: ss.sss **Z** 格式的标准日期。 DateTimeFormat](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html)例如，`2015-10-15T19:11:51.003Z`。

`epochDate`支持与基于 Quick (SPICE) 中存储的数据集的分析一起使用。

## 语法


```
epochDate(epochdate)
```

## Arguments


 *epochdate*   
一个纪元日期，它是以整数 (自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的秒数) 形式表示的日期。  
*epochdate* 必须为整数。它可以是使用整数数据类型的字段的名称、字面整数值，也可以是对输出整数的其他函数的调用。如果整数值大于 10 位数，则会丢弃第 10 位以后的数字。

## 返回类型


日期

## 示例


以下示例将纪元日期转换为标准日期。

```
epochDate(3100768000)
```

将返回以下值。

```
2068-04-04T12:26:40.000Z
```

# Exp


`exp` 返回以自然常数 e 为底且以给定表达式为幂的值。

## 语法


```
exp(expression)
```

## Arguments


 *expression*   
表达式必须是数字。它可以是字段名、文本值或其他函数。

# Extract


`extract` 返回日期值的指定部分。如果对不包含时间信息的日期发出时间相关部分请求，则返回 0。

## 语法


```
extract(period, date)
```

## Arguments


 *时段*   
希望从日期值中提取的时间段。有效时间段如下所示：  
+ YYYY：返回日期的年份部分。
+ Q：返回日期所属的季度（1–4）。
+ MM：返回日期的月份部分。
+ DD：返回日期的日期部分。
+ WD：返回周日期 (以整数表示，星期日为 1)。
+ HH：返回日期的小时部分。
+ MI：返回日期的分钟部分。
+ SS：返回日期的秒部分。
+ MS：返回日期的毫秒部分。
**注意**  
在版本 0.216 以下的 Presto 数据库中，不支持提取毫秒。

 *date*   
它可以是日期字段，也可以是对输出日期的其他函数的调用。

## 返回类型


整数

## 示例


以下示例从日期值中提取日期。

```
extract('DD', orderDate)
```

以下是给定的字段值。

```
orderDate
=========
01/01/14  
09/13/16
```

对于这些字段值，将返回以下值。

```
01
13
```

# Floor


`floor` 将小数值向下舍入到小于它的最接近整数。例如，`floor(29.08)` 将返回 `29`。

## 语法


```
floor(decimal)
```

## Arguments


 *decimal*   
使用小数数据类型的字段、文本值（如 **17.62**）或对输出小数的其他函数的调用。

## 返回类型


整数

## 示例


以下示例将一个小数字段向下舍入为小于它的最接近整数。

```
floor(salesAmount)
```

以下是给定的字段值。

```
20.13
892.03
57.54
```

对于这些字段值，将返回以下值。

```
20
892
57
```

# formatDate


`formatDate` 使用您指定的模式格式化日期。在准备数据时，可以使用 `formatDate` 重新格式化日期。要在分析中重新格式化日期，请从日期字段的上下文菜单中选择格式选项。

## 语法


```
formatDate(date, ['format'])
```

## Arguments


 *date*   
它可以是日期字段，也可以是对输出日期的其他函数的调用。

 *format*   
(可选) 包含要应用的格式模式的字符串。此参数接受[支持的日期格式中指定的格式](https://docs.amazonaws.cn/quicksight/latest/user/supported-date-formats.html)模式。  
如果不指定格式，则此字符串默认为 yyyy-MM-dd**T**kk:mm:ss:SSS 格式。

## 返回类型


字符串

## 示例


以下示例设置 UTC 日期的格式。

```
formatDate(orderDate, 'dd-MMM-yyyy')
```

以下是给定的字段值。

```
order date      
=========
2012-12-14T00:00:00.000Z  
2013-12-29T00:00:00.000Z
2012-11-15T00:00:00.000Z
```

对于这些字段值，将返回以下值。

```
13 Dec 2012
28 Dec 2013
14 Nov 2012
```

## 示例


如果日期包含单引号或撇号，例如 `yyyyMMdd'T'HHmmss`，则可以使用以下方法之一来处理此日期格式。
+ 使用双引号括住整个日期，如以下示例所示：

  ```
  formatDate({myDateField}, "yyyyMMdd'T'HHmmss")
  ```
+ 通过在单引号或撇号的左侧添加反斜杠 (`\`) 来转义单引号或撇号，如以下示例所示：

  ```
  formatDate({myDateField}, 'yyyyMMdd\'T\'HHmmss')
  ```

# Ifelse


`ifelse` 对一组 *if*/*then* 表达式对进行计算，并返回计算结果为 true 的第一个 *if* 参数的 *then* 参数值。如果所有 *if* 参数的计算结果都不为 true，则返回 *else* 参数的值。

## 语法


```
ifelse(if-expression-1, then-expression-1 [, if-expression-n, then-expression-n ...], else-expression)
```

## Arguments


`ifelse` 需要一个或多个 *if*/*then* 表达式对，*else* 参数只需要一个表达式。

 *if-expression*   
表达式的计算结果为 true 或 false。它可以是字段名称（如 **address1**）、文本值（如 **'Unknown'**）或其他函数（如 `toString(salesAmount)`）。例如，`isNotNull(FieldName)`。  
如果您在 `if` 参数中使用了多个 AND 和 OR 运算符，请给语句加上括号以确定处理顺序。例如，以下 `if` 参数返回 2000 年 1、2 或 5 月份的记录。  

```
ifelse((month = 5 OR month < 3) AND year = 2000, 'yes', 'no')
```
以下 `if` 参数使用相同的运算符，但返回任意年份的 5 月份的记录，或者返回 2000 年 1 或 2 月份的记录。  

```
ifelse(month = 5 OR (month < 3 AND year = 2000), 'yes', 'no')
```

 *then-expression*   
在 *if* 参数的计算结果为 true 时，将返回该表达式。它可以是字段名称（如 **address1**）、文本值（如 **'Unknown'**）或对其他函数的调用。该表达式的数据类型必须与其他 `then` 参数和 `else` 参数相同。

 *else-expression*   
该表达式在所有 *if* 参数的计算结果都不为 true 时返回。它可以是字段名称（如 **address1**）、文本值（如 **'Unknown'**）或其他函数（如 `toString(salesAmount)`）。该表达式的数据类型必须与所有 `then` 参数相同。

## 返回类型


`ifelse` 返回与 *then-expression* 中的值具有相同数据类型的值。*then* 和 *else* 表达式返回的所有数据都必须是相同的数据类型或转换为相同的数据类型。

## 示例


以下示例为字段 `country` 生成一列别名。

```
ifelse(country = "United States", "US", country = "China", "CN", country = "India", "IN", "Others") 
```

对于此类用例，根据文本列表评估字段中的每个值，并返回与第一个匹配值相对应的结果，建议使用函数 switch 来简化您的工作。可以使用 [https://docs.amazonaws.cn/quicksight/latest/user/switch-function.html](https://docs.amazonaws.cn/quicksight/latest/user/switch-function.html) 将前面的示例重写为以下语句：

```
switch(country,"United States","US","China","CN","India","IN","Others")
```

以下示例将每位客户的销售额归类为人类可读的级别。

```
ifelse(salesPerCustomer < 1000, “VERY_LOW”, salesPerCustomer < 10000, “LOW”, salesPerCustomer < 100000, “MEDIUM”, “HIGH”)
```

以下示例使用 AND、OR 和 NOT 来比较多个表达式，表达式中使用了条件运算符，以标记不在华盛顿或俄勒冈州、享受特别促销并且订单超过 10 个的最大客户。如果没有返回值，则使用值 `'n/a'`。

```
ifelse(( (NOT (State = 'WA' OR State =  'OR')) AND Orders > 10),  'Special Promotion XYZ',  'n/a')
```

以下示例仅使用 OR 生成一个新列，该列包含与每个 `country` 对应的大洲名称。

```
ifelse(country = "United States" OR country = "Canada", "North America", country = "China" OR country = "India" OR country = "Japan", "Asia", "Others")
```

可以简化前面的示例，如下一个示例所示。以下示例使用 `ifelse` 和 [https://docs.amazonaws.cn/quicksight/latest/user/in-function.html](https://docs.amazonaws.cn/quicksight/latest/user/in-function.html) 在新列中为测试值位于文本列表中的任何行创建值。您也可以将 `ifelse` 与 [https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html](https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html) 搭配使用。

```
ifelse(in(country,["United States", "Canada"]), "North America", in(country,["China","Japan","India"]),"Asia","Others")
```

作者可以将文本列表保存在多值参数中，并在 [https://docs.amazonaws.cn/quicksight/latest/user/in-function.html](https://docs.amazonaws.cn/quicksight/latest/user/in-function.html) 或 [https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html](https://docs.amazonaws.cn/quicksight/latest/user/notIn-function.html) 函数中使用该参数。除了文本列表存储在两个多值参数中之外，以下示例与前面的示例相同。

```
ifelse(in(country,${NorthAmericaCountryParam}), "North America", in(country,${AsiaCountryParam}),"Asia", "Others") 
```

以下示例根据销售总额为销售记录分配一个组。每个 `if-then` 短语的结构都模仿了 *between* 的行为，这个关键字目前在计算字段表达式中不起作用。例如，比较 `salesTotal >= 0 AND salesTotal < 500` 的结果返回的值与 SQL 比较 `salesTotal between 0 and 499` 的值相同。

```
ifelse(salesTotal >= 0 AND salesTotal < 500, 'Group 1', salesTotal >= 500 AND salesTotal < 1000, 'Group 2', 'Group 3')
```

以下示例通过使用 `coalesce` 返回第一个非 NULL 值来测试 NULL 值。无需记住日期字段中 NULL 的含义，而是可以使用可读的描述来代替。如果断开连接日期为 NULL，则该示例将返回暂停日期，除非这两个日期均为 NULL。然后 `coalesce(DiscoDate, SuspendDate, '12/31/2491')` 返回 `'12/31/2491'`。返回值必须与其他数据类型匹配。这个日期可能看起来像是一个不寻常的值，但是 25 世纪的日期合理地模拟了“时间结束”，即数据集市中的最高日期。

```
ifelse (  (coalesce(DiscoDate, SuspendDate, '12/31/2491') = '12/31/2491'),  'Active subscriber', 'Inactive subscriber')
```

以下内容以更具可读性的格式显示了一个更复杂的示例，只是为了说明您不需要将代码全部压缩成一长行。此示例提供了对调查结果值的多重比较。它处理此字段的潜在 NULL 值，并对两个可接受的范围进行分类。它还会标记一个需要更多测试的范围和另一个无效（超出范围）的范围。对于所有剩余值，它会应用 `else` 条件，并将该行标记为在该行上的日期三年后需要重新测试。

```
ifelse
( 
    isNull({SurveyResult}), 'Untested',  
    {SurveyResult}=1, 'Range 1', 
    {SurveyResult}=2, 'Range 2', 
    {SurveyResult}=3, 'Need more testing',
    {SurveyResult}=99, 'Out of Range',
    concat  
    (
        'Retest by ', 
        toString    
        (
           addDateTime(3, "YYYY", {Date}) 
        )
    )
)
```

以下示例将“手动”创建的区域名称分配给一组州。它还使用空格和 `/* */` 中包装的注释来简化代码的维护。

```
ifelse 
(    /* NE REGION*/
     locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) > 0,
    'Northeast',

     /* SE REGION*/
     locate('Georgia, Alabama, South Carolina, Louisiana',{State}) > 0,
    'Southeast',

    'Other Region'
)
```

区域标记的逻辑分解如下：

1. 我们列出了要为每个区域设置的州，用引号将每个列表括起来，使每个列表成为一个字符串，如下所示：
   + `'New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire'`
   + `'Georgia, Alabama, South Carolina, Louisiana'`
   + 您可以添加更多设置，也可以根据需要使用国家/地区、城市、省份或 What3Words。

1. 我们询问列表中是否找到了 `State`（每行）的值，如果在列表中找到该州，则使用 `locate` 函数返回一个非零值，如下所示。

   ```
   locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) 
   
   and
   
   locate('Georgia, Alabama, South Carolina, Louisiana',{State})
   ```

1. `locate` 函数返回的是数字而不是 `TRUE` 或 `FALSE`，但 `ifelse` 需要使用 `TRUE`/`FALSE` 布尔值。为了解决这个问题，我们可以将 `locate` 的结果与一个数字进行比较。如果该州在列表中，则返回值大于零。

   1. 询问该州是否存在。

      ```
      locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) > 0
      ```

   1. 如果存在该区域，则将其标记为特定区域，在本例中为东北区域。

      ```
      /*The if expression:*/     locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) > 0,
      /*The then expression:*/   'Northeast',
      ```

1. 因为我们有不在列表中的州，也因为 `ifelse` 需要单个 `else` 表达式，所以我们提供 `'Other Region'` 作为剩余州的标签。

   ```
   /*The if expression:*/     locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) > 0,
   /*The then expression:*/   'Northeast',
   /*The else expression:*/   'Other Region'
   ```

1. 我们将所有这些都包装在 `ifelse( )` 函数中以获得最终版本。以下示例省略了原始版本中的东南区域的州。您可以重新添加这些州来代替 *`<insert more regions here>`* 标签。

   如果要添加更多区域，则可以构造这两行的更多副本，并根据自己的目的更改州列表。您可以将区域名称更改为适合自己的名称，也可以将字段名称从 `State` 更改为所需的任何名称。

   ```
   ifelse 
   (
   /*The if expression:*/     locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) > 0,
   /*The then expression:*/   'Northeast',
   
   /*<insert more regions here>*/
   
   /*The else expression:*/   'Other Region'
   )
   ```
**注意**  
还有其他方法可以对 if 表达式进行初始比较。例如，假设您提出了一个问题：“这个列表中没有缺少哪些州？” 而不是“列表上有哪些州？” 如果您这样做，可能会用不同的措辞。您可以将 locate 语句与零进行比较以查找列表中缺少的值，然后使用 NOT 运算符将它们归类为“未缺失”，如下所示。  

   ```
   /*The if expression:*/      NOT (locate('New York, New Jersey, Connecticut, Vermont, Maine, Rhode Island, New Hampshire',{State}) = 0),
   ```
两个版本都是正确的。您选择的版本应该对您和您的团队最有意义，这样您就可以轻松对其进行维护。如果所有选项看起来都相同，请选择最简单的选项。

# in
in

`in` 评估文本列表中是否存在表达式。如果列表包含表达式，则返回 true，否则返回 false。对于字符串类型输入，`in` 区分大小写。

`in` 接受两种文本列表，一种是手动输入的列表，另一种是[多值参数](https://docs.amazonaws.cn/quicksight/latest/user/parameters-in-quicksight.html)。

## 语法


使用手动输入的列表：

```
in(expression, [literal-1, ...])  
```

使用多值参数：

```
in(expression, $multivalue_parameter)
```

## 参数


 *expression*   
要与文本列表中的元素进行比较的表达式。可以是字段名称（例如 `address`）、字面值（例如“**Unknown**”）、单值参数或对另一个标量函数的调用，前提是此函数不是聚合函数或表计算。

 *文本列表*   
（必填）这可以是手动输入的列表或多值参数。此参数最多接受 5,000 个元素。但是，在直接查询第三方数据来源（例如 Oracle 或 Teradata）时，限制可能会更小。  
+ ***手动输入的列表*** – 列表中的一个或多个要与表达式进行比较的文本值。列表应用方括号括起来。所有要比较的文本必须与表达式具有相同的数据类型。
+ ***多值参数*** – 作为文本列表传入的预定义多值参数。多值参数必须与表达式具有相同的数据类型。


## 返回类型


布尔值：TRUE/FALSE

## 使用静态列表的示例


以下示例评估 `origin_state_name` 字段的字符串列表中的值。比较字符串类型输入时，`in` 仅支持区分大小写的比较。

```
in(origin_state_name,["Georgia", "Ohio", "Texas"])
```

以下是给定的字段值。

```
"Washington"
        "ohio"
        "Texas"
```

对于这些字段值，将返回以下值。

```
false
        false
        true
```

第三个返回值为 true，因为只有“Texas”是包含的值之一。

以下示例评估 `fl_date` 字段的字符串列表中的值。为了匹配类型，`toString` 用于将日期类型转换为字符串类型。

```
in(toString(fl_date),["2015-05-14","2015-05-15","2015-05-16"])
```

![\[函数示例结果的图像，以表格形式显示。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/in-function-example-manual-list.png)


表达式参数中支持文本和 NULL 值，以便与列表中的文本进行比较。以下两个示例都将生成一列 TRUE 值的新列。

```
in("Washington",["Washington","Ohio"])
```

```
in(NULL,[NULL,"Ohio"])
```

## 使用多值参数的示例


假设作者创建了一个包含所有州名列表的[多值参数](https://docs.amazonaws.cn/quicksight/latest/user/parameters-in-quicksight.html)。然后，作者添加了一个控件，允许读者从列表中选择值。

接下来，读者从参数的下拉列表控件中选择三个值，即“Georgia”、“Ohio”和“Texas”。在本例中，以下表达式等同于第一个示例，其中这三个州名称作为文本列表传递，以便与 `original_state_name` 字段进行比较。

```
in (origin_state_name, ${stateName MultivalueParameter})
```

## 使用 `ifelse` 的示例


`in` 可以作为布尔值嵌套在其他函数中。一个例子是，作者可以计算列表中的任何表达式并使用 `in` 和 `ifelse` 返回他们想要的值。以下示例评估航班的 `dest_state_name` 是否位于特定的美国州列表中，并根据比较结果返回不同的州类别。

```
ifelse(in(dest_state_name,["Washington", "Oregon","California"]), "WestCoastUSState", "Other US State")
```

![\[函数示例结果的图像，以表格形式显示。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/in-function-with-ifelse.png)


# intToDecimal


`intToDecimal` 将整数值转换为小数数据类型。

## 语法


```
intToDecimal(integer)
```

## Arguments


 *int*   
使用整数数据类型的字段、文本值（如 **14**）或对输出整数的其他函数的调用。

## 返回类型


传统数据准备体验中的十进制（固定）。

全新的数据准备体验中的十进制（浮点型）。

## 示例


以下示例将一个整数字段转换为小数。

```
intToDecimal(price)
```

以下是给定的字段值。

```
20
892
57
```

对于这些字段值，将返回以下值。

```
20.0
892.0
58.0
```

您可以在分析中应用任意格式设置，例如，将 `price` 格式化为货币。

# isNotNull


`isNotNull` 对表达式求值以确定其是否为 null。如果表达式不为 null，`isNotNull` 将返回 true，否则，将返回 false。

## 语法


```
isNotNull(expression)
```

## Arguments


 *expression*   
表达式的计算结果为 null 或非 null。它可以是字段名称（如 **address1**）或对输出字符串的其他函数的调用。

## 返回类型


布尔值

## 示例


以下示例计算 sales\$1amount 字段的值是否为 null。

```
isNotNull(salesAmount)
```

以下是给定的字段值。

```
20.13
(null)
57.54
```

对于这些字段值，将返回以下值。

```
true
false
true
```

# isNull


`isNull` 对表达式求值以确定其是否为 null。如果表达式为 null，`isNull` 将返回 true，否则，将返回 false。

## 语法


```
isNull(expression)
```

## Arguments


 *expression*   
表达式的计算结果为 null 或非 null。它可以是字段名称（如 **address1**）或对输出字符串的其他函数的调用。

## 返回类型


布尔值

## 示例


以下示例计算 sales\$1amount 字段的值是否为 null。

```
isNull(salesAmount)
```

以下是给定的字段值。

```
20.13
(null)
57.54
```

对于这些字段值，将返回以下值。

```
false
true
false
```

以下示例测试 `ifelse` 语句中的 NULL 值，改为返回人类可读的值。

```
ifelse( isNull({ActiveFlag}) , 'Inactive',  'Active') 
```

# isWorkDay


`isWorkDay` 评估给定的日期时间值以确定该值是否为工作日。

`isWorkDay` 假设标准每周工作 5 天，从星期一开始，到星期五结束。假设星期六和星期日为周末。该函数始终按 `DAY` 粒度计算其结果，并且不包括给定的输入日期。

## 语法


```
isWorkDay(inputDate)
```

## Arguments


 *inputDate*   
要评估的日期时间值。有效值如下所示：  
+ 数据集字段：要向其添加此函数的数据集中的任何 `date` 字段。
+ 日期函数：从其他 `date` 函数输出的任何日期，例如，`parseDate`。
+ 计算字段：任何返回`date`值的快速计算字段。
+ 参数：任何 Quick `DateTime` 参数。

## 返回类型


整数（`0` 或 `1`）

## 示例


以下示例确定 `application_date` 字段是否为工作日。

假设有一个名为 `application_date` 的字段，其值如下：

```
2022-08-10 
2022-08-06 
2022-08-07
```

当您使用这些字段并添加以下计算时，`isWorkDay` 返回以下值：

```
isWorkDay({application_date})     
                                                     
1
0
0
```

以下示例使用条件格式筛选在工作日结束雇佣的员工，并确定他们的雇佣是在工作日还是周末开始：

```
is_start_date_work_day = isWorkDay(employment_start_date)
is_end_date_work_day = isWorkDay(employment_end_date)
```

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/isWorkDay-example.png)


# Left
靠左对齐

`left` 返回字符串最左侧的字符，包括空格。您可以指定要返回的字符数。

## 语法


```
left(expression, limit)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *limit*   
要从 *expression* 返回的字符数，从字符串中的第一个字符开始。

## 返回类型


字符串

## 示例


以下示例返回字符串中的前 3 个字符。

```
left('Seattle Store #14', 3)
```

将返回以下值。

```
Sea
```

# Locate
Locate

`locate` 查找您在一个字符串中指定的子字符串，并返回子字符串的第一个字符在该字符串中的位置。如果未找到子字符串，该函数将返回 0。该函数以 1 为基准。

## 语法


```
locate(expression, substring, start)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *substring*   
您要在 *expression* 中查找的一组字符。子字符串可在 *expression* 中出现一次或多次。

 *start*   
(可选) 如果 *substring* 出现多次，请使用 *start* 确定该函数应从字符串中的哪一位置开始查找子字符串。例如，假设您要查找某个子字符串的第二个示例，并且您认为它通常会出现在前 10 个字符之后，则指定 *start* (开始) 值为 10。应该从 1 开始。

## 返回类型


整数

## 示例


以下示例返回有关子字符串“and”在字符串中首次出现的位置的信息。

```
locate('1 and 2 and 3 and 4', 'and')
```

将返回以下值。

```
3
```

以下示例返回有关子字符串“and”在字符串中第四个字符后首次出现的位置的信息。

```
locate('1 and 2 and 3 and 4', 'and', 4)
```

将返回以下值。

```
9
```

# Log


`log` 返回给定表达式的以 10 为底的对数。

## 语法


```
log(expression)
```

## Arguments


 *expression*   
表达式必须是数字。它可以是字段名、文本值或其他函数。

# Ln


`ln` 返回给定表达式的自然对数。

## 语法


```
ln(expression)
```

## Arguments


 *expression*   
表达式必须是数字。它可以是字段名、文本值或其他函数。

# Ltrim
Ltrim

`ltrim` 从字符串中移除前置空格。

## 语法


```
ltrim(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例从字符串中删除前置空格。

```
ltrim('   Seattle Store #14')
```

将返回以下值。

```
Seattle Store #14
```

# Mod


使用 `mod` 函数查找将一个数字除以除数之后的余数。您可以互换使用 `mod` 函数或取模运算符 (%)。

## 语法


```
mod(number, divisor)
```

```
number%divisor
```

## Arguments


 *number*   
数字是您要除以并查找其余数的正整数。

 *除数*   
除数是您要除的正整数。如果除数为零，则此函数将返回除以 0 错误。

## 示例


以下示例返回 17 除以 6 时的取模。第一个示例使用 % 运算符，第二个示例使用 mod 函数。

```
17%6
```

```
mod( 17, 6 )
```

将返回以下值。

```
5
```

# netWorkDays


`netWorkDays`返回提供的两个日期字段之间的工作日数，甚至返回使用其他快速日期函数（例如`parseDate`或`epochDate`作为整数）生成的自定义日期值。

`netWorkDays` 假设标准每周工作 5 天，从星期一开始，到星期五结束。假设星期六和星期日为周末。计算结果包括 `startDate` 和 `endDate`。该函数运行并显示 DAY 粒度的结果。

## 语法


```
netWorkDays(startDate, endDate)
```

## Arguments


 *startDate*   
用作计算开始日期的有效非 NULL 日期。  
+ 数据集字段：要向其添加此函数的数据集中的任何 `date` 字段。
+ 日期函数：从其他 `date` 函数输出的任何日期，例如，`parseDate`。
+ 计算字段：任何返回`date`值的快速计算字段。
+ 参数：任何 Quick `DateTime` 参数。
+ 上述参数值的任意组合。

 *endDate*   
用作计算结束日期的有效非 NULL 日期。  
+ 数据集字段：要向其添加此函数的数据集中的任何 `date` 字段。
+ 日期函数：从其他 `date` 函数输出的任何日期，例如，`parseDate`。
+ 计算字段：任何返回`date`值的快速计算字段。
+ 参数：任何 Quick `DateTime` 参数。
+ 上述参数值的任意组合。

## 返回类型


整数 

## 输出值


预期的输出值包括：
+ 正整数（当 start\$1date < end\$1date 时）
+ 负整数（当 start\$1date > end\$1date 时）
+ 当其中一个或两个参数从 `dataset field` 中获得空值时，则为 NULL。

## 示例


以下示例返回介于两个日期之间的工作日数。

假设有一个名为 `application_date` 的字段，其值如下：

```
netWorkDays({startDate}, {endDate})
```

以下是给定的字段值。

```
startDate	endDate	netWorkDays
        9/4/2022	9/11/2022	5
        9/9/2022	9/2/2022	-6
        9/10/2022	9/11/2022	0
        9/12/2022	9/12/2022	1
```

以下示例计算每位员工的工作天数和为每位员工每天支出的工资：

```
days_worked = netWorkDays({employment_start_date}, {employment_end_date})
        salary_per_day = {salary}/{days_worked}
```

以下示例使用条件格式筛选在工作日结束雇佣的员工，并确定他们的雇佣是在工作日还是周末开始：

```
is_start_date_work_day = netWorkDays(employment_start_date)
        is_end_date_work_day = netWorkDays(employment_end_date)
```

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/netWorkDays-function-example.png)


# Now


对于直接查询数据库的数据库数据集，`now` 使用数据库服务器指定的设置和格式返回当前日期和时间。对于 SPICE 和 Salesforce 数据集，`now` 会返回 UTC 日期和时间，格式为 `yyyy-MM-ddTkk:mm:ss:SSSZ`（例如，2015-10-15T19:11:51:003Z）。

## 语法


```
now()
```

## 返回类型


日期

# notIn
notIn

`notIn` 评估文本列表中是否存在表达式。如果列表不包含表达式，`notIn` 返回 true，否则返回 false。对于字符串类型输入，`notIn` 区分大小写。

`notIn` 接受两种文本列表，一种是手动输入的列表，另一种是[多值参数](https://docs.amazonaws.cn/quicksight/latest/user/parameters-in-quicksight.html)。

## 语法


使用手动输入的列表：

```
notIn(expression, [literal-1, ...])  
```

使用多值参数：

```
notIn(expression, $multivalue_parameter)
```

## 参数


 *expression*   
要与文本列表中的元素进行比较的表达式。可以是字段名称（例如 `address`）、字面值（例如“**Unknown**”）、单值参数或对另一个标量函数的调用，前提是此函数不是聚合函数或表计算。

 *文本列表*   
（必填）这可以是手动输入的列表或多值参数。此参数最多接受 5,000 个元素。但是，在直接查询第三方数据来源（例如 Oracle 或 Teradata）时，限制可能会更小。  
+ ***手动输入的列表*** – 列表中的一个或多个要与表达式进行比较的文本值。列表应用方括号括起来。所有要比较的文本必须与表达式具有相同的数据类型。
+ ***多值参数*** – 作为文本列表传入的预定义多值参数。多值参数必须与表达式具有相同的数据类型。


## 返回类型


布尔值：TRUE/FALSE

## 使用手动输入列表的示例


以下示例评估 `origin_state_name` 字段的字符串列表中的值。比较字符串类型输入时，`notIn` 仅支持区分大小写的比较。

```
notIn(origin_state_name,["Georgia", "Ohio", "Texas"])
```

以下是给定的字段值。

```
"Washington"
        "ohio"
        "Texas"
```

对于这些字段值，将返回以下值。

```
true
        true
        false
```

第三个返回值为 false，因为只有“Texas”是排除的值之一。

以下示例评估 `fl_date` 字段的字符串列表中的值。为了匹配类型，`toString` 用于将日期类型转换为字符串类型。

```
notIn(toString(fl_date),["2015-05-14","2015-05-15","2015-05-16"])
```

![\[函数示例结果的图像，以表格形式显示。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/notin-function-example-manual-list.png)


表达式参数中支持文本和 NULL 值，以便与列表中的文本进行比较。以下两个示例都将生成一列 FALSE 值的新列。

```
notIn("Washington",["Washington","Ohio"])
```

```
notIn(NULL,[NULL,"Ohio"])
```

## 使用多值参数的示例


假设作者创建了一个包含所有州名列表的[多值参数](https://docs.amazonaws.cn/quicksight/latest/user/parameters-in-quicksight.html)。然后，作者添加了一个控件，允许读者从列表中选择值。

接下来，读者从参数的下拉列表控件中选择三个值，即“Georgia”、“Ohio”和“Texas”。在本例中，以下表达式等同于第一个示例，其中这三个州名称作为文本列表传递，以便与 `original_state_name` 字段进行比较。

```
notIn (origin_state_name, ${stateName MultivalueParameter})
```

## 使用 `ifelse` 的示例


`notIn` 可以作为布尔值嵌套在其他函数中。一个例子是，作者可以计算列表中的任何表达式并使用 `notIn` 和 `ifelse` 返回他们想要的值。以下示例评估航班的 `dest_state_name` 是否位于特定的美国州列表中，并根据比较结果返回不同的州类别。

```
ifelse(notIn(dest_state_name,["Washington", "Oregon","California"]), "notWestCoastUSState", "WestCoastUSState")
```

![\[函数示例结果的图像，以表格形式显示。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/notin-function-with-ifelse.png)


# nullIf


`nullIf` 比较两个表达式。如果表达式相等，该函数返回 null。如果表达式不相等，该函数返回第一个表达式。

## 语法


```
nullIf(expression1, expression2)
```

## Arguments


`nullIf` 接受两个表达式作为参数。

 *expression*   
该表达式可以是数字、日期时间或字符串。它可以是字段名、文本值或其他函数。

## 返回类型


字符串

## 示例


如果发货延迟的原因未知，以下示例将返回 null。

```
nullIf(delayReason, 'unknown')
```

以下是给定的字段值。

```
delayReason
============
unknown         
back ordered 
weather delay
```

对于这些字段值，将返回以下值。

```
(null)
back ordered 
weather delay
```

# parseDate
parseDate

`parseDate`解析字符串以确定其是否包含日期值，并以该格式返回标准日期`yyyy-MM-ddTkk:mm:ss.SSSZ`（使用 Joda 项目文档中 C [lass DateTimeFormat](http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html) 中指定的格式模式语法），例如 2015-10-15T19:11:51.003 Z。该函数返回所有包含某个有效格式日期的行，并跳过任何其他行，包括具有 null 值的行。

Quick 支持的日期范围为世界标准时间 1900 年 1 月 1 日 00:00:00:00 至世界标准时间 2037 年 12 月 31 日 23:59:59。有关更多信息，请参阅[支持的日期格式](https://docs.amazonaws.cn/quicksight/latest/user/supported-date-formats.html)。

## 语法


```
parseDate(expression, ['format'])
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'1/1/2016'**）或对输出字符串的其他函数的调用。

 *format*   
(可选) 包含 *date\$1string* 必须匹配的格式模式的字符串。例如，如果您使用的字段包含类似的数据**01/03/2016**，则可以指定格式 “MM/dd/yyyy”。如果不指定格式，则默认为 `yyyy-MM-dd`。将跳过数据不符合 *format* 的行。  
根据所使用的数据集类型，支持不同的日期格式。可以使用下表了解支持的日期格式的详细信息。    
****    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/quick/latest/userguide/parseDate-function.html)

## 返回类型


日期

## 示例


下面的示例对 `prodDate` 进行求值以确定其是否包含日期值。

```
parseDate(prodDate, 'MM/dd/yyyy')
```

以下是给定的字段值。

```
prodDate
--------
01-01-1999
12/31/2006
1/18/1982 
7/4/2010
```

对于这些字段值，将返回以下行。

```
12-31-2006T00:00:00.000Z
01-18-1982T00:00:00.000Z
07-04-2010T00:00:00.000Z
```

# parseDecimal
parseDecimal

`parseDecimal` 解析字符串以确定其是否包含小数值。该函数返回包含小数、整数或 null 值的所有行，并跳过所有其他行。如果行包含整数值，则作为最多有 4 位小数的小数返回。例如，值“2”返回为“2.0”。

## 语法


```
parseDecimal(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'9.62'**）或对输出字符串的其他函数的调用。

## 返回类型


传统数据准备体验中的十进制（固定）。

全新的数据准备体验中的十进制（浮点型）。

## 示例


下面的示例对 `fee` 进行求值以确定其是否包含小数值。

```
parseDecimal(fee)
```

以下是给定的字段值。

```
fee
--------
2
2a
12.13
3b
3.9
(null)
198.353398
```

对于这些字段值，将返回以下行。

```
2.0
12.13
3.9
(null)
198.3533
```

# parseInt
parseInt

`parseInt` 解析字符串以确定其是否包含整数值。该函数返回包含小数、整数或 null 值的所有行，并跳过所有其他行。如果行包含小数值，则返回向下舍入到的最接近的整数。例如，值“2.99”返回为“2”。

## 语法


```
parseInt(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'3'**）或对输出字符串的其他函数的调用。

## 返回类型


整数

## 示例


下面的示例对 `feeType` 进行求值以确定其是否包含整数值。

```
parseInt(feeType)
```

以下是给定的字段值。

```
feeType
--------
2
2.1
2a
3
3b
(null)
5
```

对于这些字段值，将返回以下行。

```
2
2
3
(null)
5
```

# parseJson
parseJson

使用 `parseJson` 从 JSON 对象提取值。

如果您的数据集存储在 Quick 中SPICE，则可以在准备数据集`parseJson`时使用，但不能在分析期间存储在计算字段中。

对于直接查询，您可以在数据准备和分析期间使用 `parseJson`。`parseJson` 函数适用于字符串或 JSON 本机数据类型，具体视方言而定（如下表所示）。


| Dialect | Type | 
| --- | --- | 
| PostgreSQL | JSON | 
| Amazon Redshift | 字符串 | 
| Microsoft SQL Server | 字符串 | 
| MySQL | JSON | 
| Teradata | JSON | 
| Oracle | 字符串 | 
| ：Presto | 字符串 | 
| Snowflake | 半结构化数据类型对象和数组 | 
| Hive | 字符串 | 

## 语法


```
parseJson(fieldName, path)
```

## Arguments


 *fieldName*   
包含您要解析的 JSON 对象的字段。

 *path*   
要从 JSON 对象中解析的数据元素的路径。路径参数仅支持字母、数字和空格。有效的路径语法包括：  
+ *\$1* – 根对象
+ *.* – 子运算符
+ *[ ]* – 数组的下标运算符

## 返回类型


字符串

## 示例


以下示例评估传入的 JSON 以检索项目数量的值。通过在数据准备期间使用它，您可以从 JSON 创建表。

```
parseJson({jsonField}, “$.items.qty”)
```

下面显示了 JSON 内容。

```
{
    "customer": "John Doe",
    "items": {
        "product": "Beer",
        "qty": 6
    },
    "list1": [
        "val1",
        "val2"
    ],
    "list2": [
        {
            "list21key1": "list1value1"
        }
    ]
}
```

在本示例中，将返回以下值。

```
6
```

## 示例


以下示例评估 `JSONObject1` 以提取第一个键值对（KVP）（其标签为 `"State"`），并将该值分配给正在创建的计算字段。

```
parseJson(JSONObject1, “$.state”)
```

以下是给定的字段值。

```
JSONObject1
-----------
{"State":"New York","Product":"Produce","Date Sold":"1/16/2018","Sales Amount":"$3423.39"}
{"State":"North Carolina","Product":"Bakery Products","Date Sold":"2/1/2018","Sales Amount":"$3226.42"}
{"State":"Utah","Product":"Water","Date Sold":"4/24/2018","Sales Amount":"$7001.52"}
```

对于这些字段值，将返回以下行。

```
New York
North Carolina
Utah
```

# Replace
Replace（替换）

`replace` 将字符串的一部分替换为您指定的其他字符串。

## 语法


```
replace(expression, substring, replacement)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *substring*   
*expression* 中您要替换的一组字符。子字符串可在 *expression* 中出现一次或多次。

 *replacement*   
您要用来替换 *substring* 的字符串。

## 返回类型


字符串

## 示例


以下示例将子字符串“and”替换为“or”。

```
replace('1 and 2 and 3', 'and', 'or')
```

返回以下字符串。

```
1 or 2 or 3
```

# Right
靠右对齐

`right` 返回字符串中最右侧的字符，包括空格。您可以指定要返回的字符数。

## 语法


```
right(expression, limit)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *limit*   
要从 *expression* 返回的字符数，从字符串中的最后一个字符开始。

## 返回类型


字符串

## 示例


以下示例返回字符串中的最后 5 个字符。

```
right('Seattle Store#14', 12)
```

将返回以下值。

```
tle Store#14
```

# Round


`round` 将小数值舍入为最接近的整数 (如果未指定小数位数) 或舍入到最接近的小数位数 (如果指定小数位数)。

## 语法


```
round(decimal, scale)
```

## Arguments


 *decimal*   
使用小数数据类型的字段、文本值（如 **17.62**）或对输出小数的其他函数的调用。

 *小数位数*   
用于返回值的小数位数。

## 返回类型



| 操作数 | 旧版数据准备体验中的返回类型 | 全新的数据准备体验中的返回类型 | 
| --- | --- | --- | 
|  INT  |  十进制（固定）  |  十进制（固定）  | 
|  十进制（固定）  |  十进制（固定）  |  十进制（固定）  | 
|  十进制（浮点数）  |  十进制（固定）  |  十进制（浮点数）  | 

## 示例


以下示例将一个小数字段舍入为最接近的两位小数。

```
round(salesAmount, 2)
```

以下是给定的字段值。

```
20.1307
892.0388
57.5447
```

对于这些字段值，将返回以下值。

```
20.13
892.04
58.54
```

# Rtrim
Rtrim

`rtrim` 从字符串中移除尾随空格。

## 语法


```
rtrim(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例从字符串中删除尾随空格。

```
rtrim('Seattle Store #14   ')
```

对于这些字段值，将返回以下值。

```
Seattle Store #14
```

# Split
拆分

`split` 根据您选择的分隔符将字符串拆分为一个子字符串数组，并返回由位置指定的项目。

只能在准备数据期间将 `split` 添加到计算字段，而不是添加到分析中。对 Microsoft SQL Server 的直接查询不支持此函数。

## 语法


```
split(expression, delimiter , position)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street;1402 35th Ave;1818 Elm Ct;11 Janes Lane'**）或对输出字符串的其他函数的调用。

 *分隔符*   
划定在何处将字符串拆分为子字符串的字符。例如，`split('one|two|three', '|', 2)` 变为以下内容。  

```
one
two
three
```
如果选择 `position = 2`，`split` 将返回 `'two'`。

 *position*   
(必需) 要从数组中返回的项目的位置。数组中的第一个项目的位置为 1。

## 返回类型


字符串数组

## 示例


以下示例将字符串拆分为一个数组 (将分号字符 (;) 作为分隔符)，并返回数组的第三个元素。

```
split('123 Test St;1402 35th Ave;1818 Elm Ct;11 Janes Lane', ';', 3)
```

将返回以下项目。

```
1818 Elm Ct
```

该函数跳过包含 null 值或空字符串的项目。

# Sqrt


`sqrt` 返回给定表达式的平方根。

## 语法


```
sqrt(expression)
```

## Arguments


 *expression*   
表达式必须是数字。它可以是字段名、文本值或其他函数。

# startsWith
startsWith

`startsWith` 评估表达式是否以您指定的子字符串开头。如果表达式以子字符串开头，`startsWith` 返回 true，否则返回 false。

## 语法


```
startsWith(expression, substring, string-comparison-mode)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

 *substring*   
要根据*表达式*检查的字符集。子字符串可在*表达式*中出现一次或多次。

 *string-comparison-mode*   
（可选）指定要使用的字符串比较模式：  
+ `CASE_SENSITIVE` – 字符串比较区分大小写。
+ `CASE_INSENSITIVE` – 字符串比较不区分大小写。
留空时此值默认为 `CASE_SENSITIVE`。

## 返回类型


布尔值

## 示例


### 默认区分大小写的示例


以下区分大小写的示例评估 `state_nm` 是否以 **New** 开头。

```
startsWith(state_nm, "New")
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
false
```

### 不区分大小写的示例


以下不区分大小写的示例评估 `state_nm` 是否以 **new** 开头。

```
startsWith(state_nm, "new", CASE_INSENSITIVE)
```

以下是给定的字段值。

```
New York
new york
```

对于这些字段值，将返回以下值。

```
true
true
```

### 带条件语句的示例


`startsWith` 函数可用作以下 If 函数中的条件语句：[avgIf](https://docs.amazonaws.cn/quicksight/latest/user/avgIf-function.html)、[minIf](https://docs.amazonaws.cn/quicksight/latest/user/minIf-function.html)、[distinct\$1countIf](https://docs.amazonaws.cn/quicksight/latest/user/distinct_countIf-function.html)、[countIf](https://docs.amazonaws.cn/quicksight/latest/user/countIf-function.html)、[maxIf](https://docs.amazonaws.cn/quicksight/latest/user/maxIf-function.html)、[medianIf](https://docs.amazonaws.cn/quicksight/latest/user/medianIf-function.html)、[stdevIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevIf-function.html)、[stdevpIf](https://docs.amazonaws.cn/quicksight/latest/user/stdevpIf-function.html)、[sumIf](https://docs.amazonaws.cn/quicksight/latest/user/sumIf-function.html)、[varIf](https://docs.amazonaws.cn/quicksight/latest/user/varIf-function.html) 和 [varpIf](https://docs.amazonaws.cn/quicksight/latest/user/varpIf-function.html)。

以下示例仅当 state\$1nm 以 **New** 开头时才对 `Sales` 求和。

```
sumIf(Sales,startsWith(state_nm, "New"))
```

### 不包含示例


条件 `NOT` 运算符可用于评估表达式是否不以指定的子字符串开头。

```
NOT(startsWith(state_nm, "New"))
```

### 使用数值的示例


通过应用 `toString` 函数，可以在表达式或子字符串参数中使用数值。

```
startsWith(state_nm, toString(5) )
```

# Strlen
Strlen

`strlen` 返回字符串的字符数，包括空格。

## 语法


```
strlen(expression)
```

## Arguments


 *expression*   
expression 可以是使用字符串数据类型的字段的名称（如 **address1**）、文本值（如 **'Unknown'**）或其他函数（如 `substring(field_name,0,5)`）。

## 返回类型


整数

## 示例


以下示例返回指定字符串的长度。

```
strlen('1421 Main Street')
```

将返回以下值。

```
16
```

# Substring
Substring

`substring` 返回字符串中的字符，从 *start* 参数指定的位置开始，延续 *length* 参数指定的字符数。

## 语法


```
substring(expression, start, length)
```

## Arguments


 *expression*   
expression 可以是使用字符串数据类型的字段的名称（如 **address1**）、文本值（如 **'Unknown'**）或其他函数（如 `substring(field_name,1,5)`）。

 *start*   
开始字符的位置。*start* 包含在内，因此，起始位置的字符是返回值中的第一个字符。*start* 的最小值为 1。

 *length*   
在 *start* 后面包含的其他字符数。*length* 包含 *start*，因此，返回的最后一个字符是起始字符后面的第（*length* – 1）个字符。

## 返回类型


字符串

## 示例


以下示例返回字符串中第 13 个到第 19 个字符。字符串的开头是索引 1，所以您从第一个字符开始计数。

```
substring('Fantasy and Science Fiction',13,7)
```

将返回以下值。

```
Science
```

# switch


`switch` 在一组文本标签和 *return-expression* 配对中，将 *condition-expression* 与文本标签进行比较。然后，它返回与第一个等于 *condition-expression* 的文本标签相对应的 *return-expression*。如果没有等于 *condition-expression* 的标签，则 `switch` 返回 *default-expression*。每个 *return-expression* 和 *default-expression* 必须具有相同的数据类型。

## 语法


```
switch(condition-expression, label-1, return-expression-1 [, label-n, return-expression-n ...], 
        default-expression)
```

## Arguments


`switch` 需要一个或多个 *if*/*then* 表达式对，*else* 参数只需要一个表达式。

 *condition-expression*   
要与标签文本进行比较的表达式。它可以是字段名称（如 `address`）、文本值（如“`Unknown`”）或其他函数（如 `toString(salesAmount)`）。

 *label*   
要与 *condition-expression* 参数进行比较的文本，所有文本的数据类型都必须与 *condition-expression* 参数相同。`switch` 最多可接受 5000 个标签。

 *return-expression*   
其标签的值等于 *condition-expression* 的值时返回的表达式。它可以是字段名称（如 `address`）、文本值（如“`Unknown`”）或其他函数（如 `toString(salesAmount)`）。所有 *return-expression* 参数必须与 *default-expression* 具有相同的数据类型。

 *default-expression*   
任何标签参数的值都不等于 *condition-expression* 的值时返回的表达式。它可以是字段名称（如 `address`）、文本值（如“`Unknown`”）或其他函数（如 `toString(salesAmount)`）。*default-expression* 必须与所有 *return-expression* 参数具有相同的数据类型。

## 返回类型


`switch` 返回与 *return-expression* 中的值具有相同数据类型的值。*return-expression* 和 *default-expression* 返回的所有数据都必须是相同的数据类型或转换为相同的数据类型。

## 一般示例


以下示例返回输入区域名称的 Amazon Web Services 区域 代码。

```
switch(region_name, 
               "US East (N. Virginia)", "us-east-1", 
               "Europe (Ireland)", "eu-west-1", 
               "US West (N. California)", "us-west-1", 
               "other regions")
```

以下是给定的字段值。

```
"US East (N. Virginia)"
        "US West (N. California)"
        "Asia Pacific (Tokyo)"
```

对于这些字段值，将返回以下值。

```
"us-east-1"
        "us-west-1"
        "other regions"
```

## 使用 switch 替换 `ifelse`


以下 `ifelse` 用例等同于前面的示例，当 `ifelse` 评估一个字段的值是否等于不同的文本值时，改用 `switch` 是更好的选择。

```
ifelse(region_name = "US East (N. Virginia)", "us-east-1", 
               region_name = "Europe (Ireland)", "eu-west-1", 
               region_name = "US West (N. California)", "us-west-1", 
               "other regions")
```

## 表达式作为返回值


以下示例在 *return-expressions* 中使用表达式：

```
switch({origin_city_name}, 
               "Albany, NY", {arr_delay} + 20, 
               "Alexandria, LA", {arr_delay} - 10,
               "New York, NY", {arr_delay} * 2, 
               {arr_delay})
```

前面的示例更改了从特定城市起飞的每个航班的预期延误时间。

![\[函数示例结果的图像，以表格形式显示。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/switch-function-example.png)


# toLower
toLower

`toLower` 将字符串全部设置为小写格式。`toLower` 跳过包含 null 值的行。

## 语法


```
toLower(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例将一个字符串值转换为小写。

```
toLower('Seattle Store #14')
```

将返回以下值。

```
seattle store #14
```

# toString
toString

`toString` 将输入表达式设置为字符串格式。`toString` 跳过包含 null 值的行。

## 语法


```
toString(expression)
```

## Arguments


 *expression*   
 expression 可以是任意数据类型的字段、文本值（如 **14.62**）或对返回任意数据类型的其他函数的调用。

## 返回类型


字符串

## 示例


下面的示例将 `payDate`（使用`date`数据类型）的值作为字符串返回。

```
toString(payDate)
```

以下是给定的字段值。

```
payDate
--------
1992-11-14T00:00:00.000Z
2012-10-12T00:00:00.000Z
1973-04-08T00:00:00.000Z
```

对于这些字段值，将返回以下行。

```
1992-11-14T00:00:00.000Z
2012-10-12T00:00:00.000Z
1973-04-08T00:00:00.000Z
```

# toUpper
toUpper

`toUpper` 将字符串全部设置为小写格式。`toUpper` 跳过包含 null 值的行。

## 语法


```
toUpper(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例将一个字符串值转换为大写。

```
toUpper('Seattle Store #14')
```

将返回以下值。

```
SEATTLE STORE #14
```

# trim
trim

`trim` 从字符串中同时移除前置和尾随空格。

## 语法


```
trim(expression)
```

## Arguments


 *expression*   
表达式必须是字符串。它可以是使用字符串数据类型的字段的名称、文本值（如 **'12 Main Street'**）或对输出字符串的其他函数的调用。

## 返回类型


字符串

## 示例


以下示例从字符串中删除尾随空格。

```
trim('   Seattle Store #14   ')
```

对于这些字段值，将返回以下值。

```
Seattle Store #14
```

# truncDate


`truncDate` 返回表示日期指定部分的日期值。例如，请求值 2012-09-02T00:00:00.000Z 的年份部分将返回 2012-01-01T00:00:00.000Z。如果为不包含时间信息的日期指定时间相关的时间段，则返回初始日期值 (不进行任何更改)。

## 语法


```
truncDate('period', date)
```

## Arguments


 *时段*   
希望返回的日期的时间段。有效时间段如下所示：  
+ YYYY：返回日期的年份部分。
+ 问：这将返回日期所属季度的第一天的日期。
+ MM：返回日期的月份部分。
+ DD：返回日期的日期部分。
+ WK：返回日期的星期部分。在 Amazon Quick 中，本周从周日开始。
+ HH：返回日期的小时部分。
+ MI：返回日期的分钟部分。
+ SS：返回日期的秒部分。
+ MS：返回日期的毫秒部分。

 *date*   
它可以是日期字段，也可以是对输出日期的其他函数的调用。

## 返回类型


日期

## 示例


以下示例返回表示订单日期月份的日期。

```
truncDate('MM', orderDate)
```

以下是给定的字段值。

```
orderDate      
=========
2012-12-14T00:00:00.000Z  
2013-12-29T00:00:00.000Z
2012-11-15T00:00:00.000Z
```

对于这些字段值，将返回以下值。

```
2012-12-01T00:00:00.000Z
2013-12-01T00:00:00.000Z
2012-11-01T00:00:00.000Z
```

# 聚合函数


聚合函数仅在分析和可视化期间可用。所有这些函数都会返回按选定的一个或多个维度分组的值。对于每个聚合，还有一个有条件聚合。它们根据条件执行相同类型的聚合。

当计算字段公式包含一个聚合时，它将成为自定义聚合。为了确保您的数据显示准确，Amazon Quick 采用以下规则：
+ 自定义聚合不能包含嵌套的聚合函数。例如，此公式不起作用：`sum(avg(x)/avg(y))`。但是，在聚合函数的内部或外部嵌套非聚合函数有效。例如，`ceil(avg(x))` 可工作。`avg(ceil(x))` 也是如此。
+ 自定义聚合在任何组合中都不能同时包含聚合和非聚合字段。例如，此公式不起作用：`Sum(sales)+quantity`。
+ 筛选条件组不能同时包含聚合字段和非聚合字段。
+ 自定义聚合无法转换为维度。它们也无法作为维度放入字段井。
+ 在数据透视表中，自定义聚合无法添加到表计算。
+ 包含自定义聚合的散点图在字段井中的 **Group/Color** 下至少需要一个维度。

有关支持的函数和运算符的更多信息，请参阅 [Amazon Quick 的计算字段函数和运算符参考](https://docs.amazonaws.cn/quicksight/latest/user/calculated-field-reference.html)。

Quick 中计算字段的聚合函数包括以下内容。

**Topics**
+ [

# avg
](avg-function.md)
+ [

# avgIf
](avgIf-function.md)
+ [

# count
](count-function.md)
+ [

# countIf
](countIf-function.md)
+ [

# distinct\$1count
](distinct_count-function.md)
+ [

# distinct\$1countIf
](distinct_countIf-function.md)
+ [

# max
](max-function.md)
+ [

# maxIf
](maxIf-function.md)
+ [

# median
](median-function.md)
+ [

# medianIf
](medianIf-function.md)
+ [

# min
](min-function.md)
+ [

# minIf
](minIf-function.md)
+ [

# percentile
](percentile-function.md)
+ [

# percentileCont
](percentileCont-function.md)
+ [

# percentileDisc（百分位数）
](percentileDisc-function.md)
+ [

# periodToDateAvg
](periodToDateAvg-function.md)
+ [

# periodToDateCount
](periodToDateCount-function.md)
+ [

# periodToDateMax
](periodToDateMax-function.md)
+ [

# periodToDateMedian
](periodToDateMedian-function.md)
+ [

# periodToDateMin
](periodToDateMin-function.md)
+ [

# periodToDatePercentile
](periodToDatePercentile-function.md)
+ [

# periodToDatePercentileCont
](periodToDatePercentileCont-function.md)
+ [

# periodToDateStDev
](periodToDateStDev-function.md)
+ [

# periodToDateStDevP
](periodToDateStDevP-function.md)
+ [

# periodToDateSum
](periodToDateSum-function.md)
+ [

# periodToDateVar
](periodToDateVar-function.md)
+ [

# periodToDateVarP
](periodToDateVarP-function.md)
+ [

# stdev
](stdev-function.md)
+ [

# stdevp
](stdevp-function.md)
+ [

# stdevIf
](stdevIf-function.md)
+ [

# stdevpIf
](stdevpIf-function.md)
+ [

# sum
](sum-function.md)
+ [

# sumIf
](sumIf-function.md)
+ [

# var
](var-function.md)
+ [

# varIf
](varIf-function.md)
+ [

# varp
](varp-function.md)
+ [

# varpIf
](varpIf-function.md)

# avg


`avg` 函数以指定的度量计算一组数字的平均值，按照选定的一个或多个维度分组。例如，`avg(salesAmount)` 返回该度量的平均值，按 (可选的) 选定维度分组。

## 语法


```
avg(decimal, [group-by level])
```

## Arguments


 *decimal*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例计算平均销售额。

```
avg({Sales})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的平均销售额，但不计算视觉对象中其他维度（区域或产品）的平均销售额。

```
avg({Sales}, [{Country}])
```

![\[仅在国家/地区等级汇总平均销售数量。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/avg-function-example.png)


# avgIf


根据条件语句，`avgIf` 函数以指定的度量计算一组数字的平均值，按照选定的一个或多个维度分组。例如，如果条件的计算结果为 true，`avgIf(ProdRev,CalendarDay >= ${BasePeriodStartDate} AND CalendarDay <= ${BasePeriodEndDate} AND SourcingType <> 'Indirect')` 返回该度量的平均值，按（可选的）选定维度分组。

## 语法


```
avgIf(dimension or measure, condition) 
```

## Arguments


 *decimal*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# count


`count` 函数计算维度或度量中包含的值的个数，按照选定的一个或多个维度分组。例如，`count(product type)` 返回产品类型的总数，按 (可选的) 选定维度分组，包括任何重复项。`count(sales)` 函数返回完成销售的总数，按 (可选的) 选定维度分组，如销售人员。

## 语法


```
count(dimension or measure, [group-by level])
```

## Arguments


 *维度或度量*   
参数必须是一个度量或一个维度。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例按视觉对象中的指定维度计算销售数量。在此示例中，显示了按月计算的销售数量。

```
count({Sales})
```

![\[按月计算的销售数量。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/count-function-example.png)


您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的销售数量，但不计算视觉对象中其他维度（区域或产品）的销售数量。

```
count({Sales}, [{Country}])
```

![\[仅在国家/地区等级汇总销售数量。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/count-function-example2.png)


# countIf


根据条件语句，`countIf` 函数计算维度或度量中包含的值的个数，按照选定的一个或多个维度分组。

## 语法


```
countIf(dimension or measure, condition)
```

## Arguments


 *维度或度量*   
参数必须是一个度量或一个维度。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

## 返回类型


整数

## 示例


以下函数返回符合条件的销售交易 (`Revenue`) 数量，包括任何重复项。

```
countIf (
    Revenue,
    # Conditions
        CalendarDay >= ${BasePeriodStartDate} AND 
        CalendarDay <= ${BasePeriodEndDate} AND 
        SourcingType <> 'Indirect'
)
```

# distinct\$1count


`distinct_count` 函数计算维度或度量中包含的不同值的个数，按照选定的一个或多个维度分组。例如，`distinct_count(product type)` 返回唯一产品类型的总数，按 (可选的) 选定维度分组，不包括重复项。`distinct_count(ship date)` 函数返回完成配送产品的日期总数，按 (可选的) 选定维度分组，如区域。

## 语法


```
distinct_count(dimension or measure, [group-by level])
```

## Arguments


 *维度或度量*   
参数必须是一个度量或一个维度。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例计算订购商品的日期总数，按视觉对象中的选定维度（如区域）分组。

```
distinct_count({Order Date})
```

![\[每个区域订购商品的日期总数。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/distinct_count-function-example.png)


您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的平均销售额，但不计算视觉对象中其他维度（区域）的平均销售额。

```
distinct_count({Order Date}, [Country])
```

![\[每个国家/地区订购商品的日期总数。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/distinct_count-function-example2.png)


# distinct\$1countIf


根据条件语句，`distinct_countIf` 函数计算维度或度量中包含的不同值的个数，按照选定的一个或多个维度分组。例如，`distinct_countIf(product type)` 返回唯一产品类型的总数，按 (可选的) 选定维度分组，不包括重复项。如果条件的计算结果为 true，`distinct_countIf(ProdRev,CalendarDay >= ${BasePeriodStartDate} AND CalendarDay <= ${BasePeriodEndDate} AND SourcingType <> 'Indirect')` 函数返回完成配送产品的日期总数，按（可选的）选定维度（如区域）分组。

## 语法


```
distinct_countIf(dimension or measure, condition)
```

## Arguments


 *维度或度量*   
参数必须是一个度量或一个维度。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# max


`max` 函数返回指定度量或日期的最大值，按照选定的一个或多个维度分组。例如，`max(sales goal)` 返回最大销售目标，按 (可选的) 选定维度分组。

## 语法


```
max(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量或一个日期。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。  
最大日期仅在表和数据透视表的 **Value (值)** 字段井中起作用。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例将返回每个区域的最大销售额。将其与总销售额、最小销售额和销售额中值进行比较。

```
max({Sales})
```

![\[每个区域的最大销售额。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/min-max-median-function-example.png)


您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的最大销售额，但不计算视觉对象中其他维度（区域）的最大销售额。

```
max({Sales}, [Country])
```

![\[每个国家/地区的最大销售额。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/max-function-example2.png)


# maxIf


根据条件语句，`maxIf` 函数返回指定度量的最大值，按照选定的一个或多个维度分组。例如，如果条件的计算结果为 true，`maxIf(ProdRev,CalendarDay >= ${BasePeriodStartDate} AND CalendarDay <= ${BasePeriodEndDate} AND SourcingType <> 'Indirect')` 返回最大销售目标，按（可选的）选定维度分组。

## 语法


```
maxIf(measure, condition)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# median


`median` 聚合返回指定度量的中值，并按照选定的一个或多个维度进行分组。例如，`median(revenue)` 返回按（可选）选定维度分组的收入中值。

## 语法


```
median(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例将返回每个区域的销售额中值。将其与总销售额、最大销售额和最小销售额进行比较。

```
median({Sales})
```

![\[每个区域的销售额中值。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/min-max-median-function-example.png)


您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的销售额中值，但不计算视觉对象中其他维度（区域）的销售额中值。

```
median({Sales}, [Country])
```

![\[每个国家/地区的销售额中值。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/median-function-example2.png)


# medianIf


根据条件语句，`medianIf` 聚合返回指定度量的中值，并按照选定的一个或多个维度进行分组。例如，如果条件的计算结果为 true 时，`medianIf(Revenue,SaleDate >= ${BasePeriodStartDate} AND SaleDate <= ${BasePeriodEndDate})` 返回收入中值，按（可选的）选定维度分组。

## 语法


```
medianIf(measure, condition)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# min


`min` 函数返回指定度量或日期的最小值，按照选定的一个或多个维度分组。例如，`min(return rate)` 返回最小收益率，按 (可选的) 选定维度分组。

## 语法


```
min(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量或一个日期。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。  
最小日期仅在表和数据透视表的 **Value (值)** 字段井中起作用。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例返回每个区域的最小销售值。将其与总销售额、最大销售额和销售额中值进行比较。

```
min({Sales})
```

![\[每个区域的最小销售额。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/min-max-median-function-example.png)


您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的最小销售额，但不计算视觉对象中其他维度（区域）的最小销售额。

```
min({Sales}, [Country])
```

![\[每个国家/地区的最小销售额。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/min-function-example2.png)


# minIf


根据条件语句，`minIf` 函数返回指定度量的最小值，按照选定的一个或多个维度分组。例如，如果条件的计算结果为 true 时，`minIf(ProdRev,CalendarDay >= ${BasePeriodStartDate} AND CalendarDay <= ${BasePeriodEndDate} AND SourcingType <> 'Indirect')` 返回最小收益率，按（可选的）选定维度分组。

## 语法


```
minIf(measure, condition)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# percentile


`percentile` 函数计算度量中值的百分位数，按字段井中的维度分组。Quick 中有两种百分位数计算可供选择：
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileCont-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileCont-function.html) 使用线性内插来确定结果。
+ [percentileDisc（百分位数）](https://docs.amazonaws.cn/quicksight/latest/user/percentileDisc-function.html)使用实际值来确定结果。

`percentile` 函数是 `percentileDisc` 的别名。

# percentileCont


`percentileCont` 函数根据度量中数字的连续分布计算百分位数。其使用字段井中应用的分组和排序。其回答了如下问题：哪些值代表这个百分位数？ 要返回数据集中可能不存在的精确的百分位数值，请使用 `percentileCont`。要返回数据集中存在的最接近的百分位数值，请改用 `percentileDisc`。

## 语法


```
percentileCont(expression, percentile, [group-by level])
```

## Arguments


 *度量*   
指定用于计算百分位数的数值。参数必须是一个度量或指标。计算中将忽略 Null。

 *percentile*   
百分位数值可以是任何介于 0-100 的数字常数。百分比值 50 计算度量的中值。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 返回值


函数的结果为数字。

## 使用说明


`percentileCont` 函数根据指定度量中值的连续分布计算结果。根据视觉对象中的设置对值进行排序后，通过在值之间进行线性内插计算得出结果。其不同于 `percentileDisc`，后者只是从聚合的一组值中返回值。`percentileCont` 的结果可能存在于指定度量的值中，也可能不存在。

## percentileCont 的示例
示例

以下示例帮助解释 percentileCont 的工作原理。

**Example 比较中值、`percentileCont` 和 `percentileDisc`**  
以下示例使用 `median`、`percentileCont` 和 `percentileDisc` 函数显示维度（类别）的中值。中值与 percentileCont 值相同。`percentileCont` 内插一个值，该值可能存在于数据集中，也可能不存在。但是，`percentileDisc` 始终显示数据集中存在的值，因此两个结果可能不匹配。本示例的最后一列显示了两个值之间的差异。每个计算字段的代码如下所示：  
+ `50%Cont = percentileCont( example , 50 )`
+ `median = median( example )`
+ `50%Disc = percentileDisc( example , 50 )`
+ `Cont-Disc = percentileCont( example , 50 ) − percentileDisc( example , 50 )`
+ `example = left( category, 1 )`（举一个更简单的例子，我们使用这个表达式将类别的名称缩短为它们的第一个字母。）

```
  example     median       50%Cont      50%Disc      Cont-Disc
 -------- ----------- ------------ -------------- ------------ 
 A          22.48          22.48          22.24          0.24
 B          20.96          20.96          20.95          0.01
 C          24.92          24.92          24.92          0
 D          24.935         24.935         24.92          0.015
 E          14.48          14.48          13.99          0.49
```

**Example 第 100 个百分位数为最大值**  
以下示例显示了 `example` 字段的各种 `percentileCont` 值。计算字段 `n%Cont` 定义为 `percentileCont( {example} ,n)`。每列中的内插值表示属于该百分位数存储桶的数字。在某些情况下，实际数据值与内插值相匹配。例如，列 `100%Cont` 每行显示相同的值，因为 6783.02 是最大的数字。  

```
 example      50%Cont     75%Cont      99%Cont    100%Cont  
 --------- ----------- ----------- ------------ ----------- 

 A             20.97       84.307      699.99      6783.02  
 B             20.99       88.84       880.98      6783.02  
 C             20.99       90.48       842.925     6783.02  
 D             21.38       85.99       808.49      6783.02
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例根据数字在国家/地区等级的连续分布来计算第 30 个百分位数，但不计算视觉对象中其他维度（区域）的第 30 个百分位数。

```
percentileCont({Sales}, 30, [Country])
```

![\[每个国家/地区的销售额百分位数。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentileCont-function-example-lac.png)


# percentileDisc（百分位数）


`percentileDisc` 函数根据 `measure` 中的实际数字计算百分位数。其使用字段井中应用的分组和排序。`percentile` 函数是 `percentileDisc` 的别名。

使用此函数回答以下问题：此百分位数中存在哪些实际数据点？ 要返回数据集中存在的最接近的百分位数值，请使用 `percentileDisc`。要返回数据集中可能不存在的精确的百分位数值，请改用 `percentileCont`。

## 语法


```
percentileDisc(expression, percentile, [group-by level])
```

## Arguments


 *度量*   
指定用于计算百分位数的数值。参数必须是一个度量或指标。计算中将忽略 Null。

 *percentile*   
百分位数值可以是任何介于 0-100 的数字常数。百分比值 50 计算度量的中值。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 返回值


函数的结果为数字。

## 使用说明


`percentileDisc` 是一个假定离散分布模型的逆分布函数。该函数具有一个百分比值和一个排序规范，并返回给定集合中的元素。

对于给定的百分位数值 `P`，`percentileDisc` 使用视觉对象中的排序值，并返回大于或等于 `P` 的最小累积分布值的值。

## percentileDisc 的示例
示例

以下示例帮助解释 percentileDisc 的工作原理。

**Example 比较中值、`percentileDisc` 和 `percentileCont`**  
以下示例使用 `percentileCont`、`percentileDisc` 和 `median` 函数显示维度（类别）的中值。中值与 percentileCont 值相同。`percentileCont` 内插一个值，该值可能存在于数据集中，也可能不存在。但是，`percentileDisc` 始终显示数据集中存在的最接近的值，因此两个结果可能不匹配。本示例的最后一列显示了两个值之间的差异。每个计算字段的代码如下所示：  
+ `50%Cont = percentileCont( example , 50 )`
+ `median = median( example )`
+ `50%Disc = percentileDisc( example , 50 )`
+ `Cont-Disc = percentileCont( example , 50 ) − percentileDisc( example , 50 )`
+ `example = left( category, 1 )`（举一个更简单的例子，我们使用这个表达式将类别的名称缩短为它们的第一个字母。）

```
 example     median       50%Cont      50%Disc      Cont-Disc
 -------- ----------- ------------ -------------- ------------ 
 A          22.48          22.48          22.24          0.24
 B          20.96          20.96          20.95          0.01
 C          24.92          24.92          24.92          0
 D          24.935         24.935         24.92          0.015
 E          14.48          14.48          13.99          0.49
```

**Example 第 100 个百分位数为最大值**  
以下示例显示了 `example` 字段的各种 `percentileDisc` 值。计算字段 `n%Disc` 定义为 `percentileDisc( {example} ,n)`。每列中的值都是数据集中的实际数字。  

```
 example     50%Disc      75%Disc        99%Disc      100%Disc
 -------- ----------- ------------ -------------- ------------ 
 A            20.97        73.98         699.99       6783.02
 B            42.19        88.84         820.08       6783.02
 C            30.52        90.48         733.44       6783.02
 D            41.38        85.99         901.29       6783.0
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例根据数字在国家/地区等级的连续分布来计算第 30 个百分位数，但不计算视觉对象中其他维度（区域）的第 30 个百分位数。

```
percentile({Sales}, 30, [Country])
```

![\[每个国家/地区的销售额百分位数。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentile-function-example-lac.png)


# periodToDateAvg


`periodToDateAvg` 函数按给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的指定度量计算一组数值的平均值。

## 语法


```
periodToDateAvg(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateAvg(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDAvgResults.png)


# periodToDateCount


`periodToDateCount` 函数按给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的维度或度量（包括重复项）计算数值。

## 语法


```
periodToDateCount(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateCount(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDCountResults.png)


# periodToDateMax


`periodToDateMax` 函数返回给定时间粒度（例如一个季度）到某个时间点（相对于该时间点）的指定度量的最大值。

## 语法


```
periodToDateMax(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateMax(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDMaxResults.png)


# periodToDateMedian


`periodToDateMedian` 函数返回给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的指定度量的中值。

## 语法


```
periodToDateMedian(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateMedian(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDMedianResults.png)


# periodToDateMin


`periodToDateMin` 函数返回给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的指定度量或日期的最小值。

## 语法


```
periodToDateMin(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateMin(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDMinResults.png)


# periodToDatePercentile


`periodToDatePercentile` 函数按给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的度量中的实际数值计算百分位数。其使用字段井中应用的分组和排序。

要返回数据集中存在的最接近的百分位数值，请使用 `periodToDatePercentile`。要返回数据集中可能不存在的精确的百分位数值，请改用 `periodToDatePercentileCont`。

## 语法


```
periodToDatePercentile(
	measure, 
	percentile, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *percentile*   
百分位数值可以是任何介于 0-100 的数字常数。百分位数 50 计算度量的中值。

 *dateTime*   
计算 PeriodToDate聚合所依据的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算了 06-30- week-to-date 21 当周每种付款类型票价金额的第 90 个百分位数。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDatePercentile(fare_amount, 90, pickupDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDPercentileResults.png)


# periodToDatePercentileCont


`periodToDatePercentileCont` 函数按给定时间粒度（例如一个季度）到该时间段某个时间点的度量中数值的连续分布计算百分位数。其使用字段井中应用的分组和排序。

要返回数据集中可能不存在的精确的百分位数值，请使用 `periodToDatePercentileCont`。要返回数据集中存在的最接近的百分位数值，请改用 `periodToDatePercentile`。

## 语法


```
periodToDatePercentileCont(
	measure, 
	percentile, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *percentile*   
百分位数值可以是任何介于 0-100 的数字常数。百分位数 50 计算度量的中值。

 *dateTime*   
计算 PeriodToDate聚合所依据的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算了 06-30- week-to-date 21 当周每种付款类型票价金额的第 90 个百分位数。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDatePercentileCont(fare_amount, 90, pickupDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDContPercentileResults.png)


# periodToDateStDev


`periodToDateStDev` 函数按给定时间粒度（例如一个季度）到某个时间点（基于示例并相对于该时间段）的指定度量计算一组数值的标准偏差。

## 语法


```
periodToDateStDev(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateStDev(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDStDevResults.png)


# periodToDateStDevP


`periodToDateStDevP` 函数按给定时间粒度（例如一个季度）到某个时间点（基于该时间段的示例）的指定度量计算一组数值的总体标准偏差。

## 语法


```
periodToDateStDevP(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateStDevP(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDStDevPResults.png)


# periodToDateSum


`periodToDateSum` 函数添加给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的指定度量。

## 语法


```
periodToDateSum(
	measure, 
	dateTime, 
	period, 
	endDate)
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 2021 年 6 月 30 日当周每种付款类型的本周迄今付款总额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateSum(fare_amount, pickUpDateTime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDSumResults.png)


# periodToDateVar


`periodToDateVar` 函数按给定时间粒度（例如一个季度）到该时间段的某个时间点的指定度量计算一组数值的样本方差。

## 语法


```
periodToDateVar(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateVar(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDVarResults.png)


# periodToDateVarP


`periodToDateVarP` 函数按给定时间粒度（例如一个季度）到某个时间点（相对于该时间段）的指定度量计算一组数值的总体方差。

## 语法


```
periodToDateVarP(
	measure, 
	dateTime, 
	period, 
	endDate (optional))
```

## Arguments


 *度量*   
参数必须是一个字段。结果中的 Null 值会被忽略。文本值不起作用。

 *dateTime*   
计算 PeriodToDate聚合的日期维度。

 *时段*   
您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。

 *endDate*   
（可选）您要结束计算periodToDate 聚合的日期维度。如果省略，默认为 `now()`。

## 示例


以下示例计算 06-30-21 当周每种付款类型 week-to-date的最低票价金额。为了简单起见，我们只筛选了单笔付款。2021 年 6 月 30 日是星期三。Quick 在周日开始新的一周。在我们的示例中，就是 2021 年 6 月 27 日。

```
periodToDateVarP(fare_amount, pickUpDatetime, WEEK, parseDate("06-30-2021", "MM-dd-yyyy"))
```

![\[这是示例计算的结果图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDVarPResults.png)


# stdev


`stdev` 函数根据样本计算指定度量中按选定的一个维度或多个维度分组的一组数字的标准差。

## 语法


```
stdev(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例使用记录的测试分数样本返回一个等级的测试分数标准偏差。

```
stdev({Score})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算主题等级的测试分数标准偏差，但不计算视觉对象中其他维度（等级）的测试分数标准偏差。

```
stdev({Score}, [Subject])
```

# stdevp


`stdevp` 函数计算指定度量中按选定的一个维度或多个维度分组的一组数字的标准差。

## 语法


```
stdevp(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例使用记录的所有分数返回一个等级的测试分数标准偏差。

```
stdevp({Score})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例使用记录的所有分数计算主题等级的测试分数标准偏差，但不计算视觉对象中其他维度（等级）的测试分数标准偏差。

```
stdevp({Score}, [Subject])
```

# stdevIf


基于条件语句，`stdevIf` 函数根据样本计算指定度量中按选定的一个维度或多个维度分组的一组数字的标准差。

## 语法


```
stdevIf(measure, conditions)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# stdevpIf


基于条件语句，`stdevpIf` 函数根据总体偏差计算指定度量中按选定的一个维度或多个维度分组的一组数字的标准差。

## 语法


```
stdevpIf(measure, conditions)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# sum


`sum` 函数以指定的度量添加一组数字，按照选定的一个或多个维度分组。例如，`sum(profit amount)` 返回利润总额，按 (可选的) 选定维度分组。

## 语法


```
sum(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例返回销售总额。

```
sum({Sales})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例计算国家/地区等级的销售总额，但不计算视觉对象中其他维度（区域或产品）的销售总额。

```
sum(Sales, [Country])
```

![\[每个国家/地区的销售总额。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sum-function-example.png)


# sumIf


根据条件语句，`sumIf` 函数以指定的度量对一组数字求和，按照选定的一个或多个维度分组。例如，如果条件的计算结果为 true，`sumIf(ProdRev,CalendarDay >= ${BasePeriodStartDate} AND CalendarDay <= ${BasePeriodEndDate} AND SourcingType <> 'Indirect')` 返回利润总额，按（可选的）选定维度分组。

## 语法


```
sumIf(measure, conditions)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

## 示例


以下示例使用带 `sumIf` 的计算字段来显示销售额（如果 `Segment` 等于 `SMB`）。

```
sumIf(Sales, Segment=’SMB’)
```

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sumIfCalc.png)


以下示例使用带 `sumIf` 的计算字段来显示销售额（如果 `Segment` 等于 `SMB` 并且年份 `Order Date` 晚于 2022）。

```
sumIf(Sales, Segment=’SMB’ AND {Order Date} >=’2022-01-01’)
```

# var


`var` 函数计算指定度量中按选定的一个维度或多个维度分组的一组数字的样本方差。

## 语法


```
var(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例返回测试分数样本的方差。

```
var({Scores})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例返回主题等级的测试分数样本的方差，但不返回视觉对象中其他维度（等级）的测试分数样本方差。

```
var({Scores}, [Subject]
```

# varIf


基于条件语句，`varIf` 函数根据样本计算指定度量中按选定的一个维度或多个维度分组的一组数字的方差。

## 语法


```
varIf(measure, conditions)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# varp


`varp` 函数计算指定度量中按选定的一个维度或多个维度分组的一组数字的总体方差。

## 语法


```
varp(measure, [group-by level])
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *分组依据等级*   
（可选）指定聚合分组依据的等级。添加的等级可以是任何维度，也可以是独立于添加到视觉对象的维度。  
参数必须是一个维度字段。分组依据等级必须用方括号 `[ ]` 括起来。有关更多信息，请参阅[级别感知计算-聚合 (LAC-A](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html)) 函数。

## 示例


以下示例返回测试分数的总体方差。

```
varp({Scores})
```

您还可以使用视图或数据集中的一个或多个维度来指定在哪个等级对计算进行分组。这称为 LAC-A 函数。有关 LAC-A 函数的更多信息，请参阅[级别感知计算-聚合 (LAC-](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations-aggregate.html) A) 函数。以下示例返回主题等级的测试分数总体方差，但不返回视觉对象中其他维度（等级）的测试分数总体方差。

```
varp({Scores}, [Subject]
```

# varpIf


基于条件语句，`varpIf` 函数根据总体偏差计算指定度量中按选定的一个维度或多个维度分组的一组数字的方差。

## 语法


```
varpIf(measure, conditions)
```

## Arguments


 *度量*   
参数必须是一个度量。结果中的 Null 值会被忽略。文本值不起作用。参数必须是一个字段。

 *condition*   
单个语句中的一个或多个条件。

# 表计算函数


在分析特定视觉对象中的数据时，您可以将表计算应用于当前数据集，以了解维度如何影响度量或它们如何相互影响。*可视化数据*是基于当前数据集的结果集，并应用了所有筛选条件、字段选择和自定义项。要查看该结果集的确切内容，您可以将视觉对象导出为文件。*表计算函数* 对数据执行运算以显示字段之间的关系。

在本节中，您可以找到表计算中可用函数的列表，这些函数可以在 Amazon Quick 中对可视化数据执行。

要查看按类别排序的函数列表以及简要定义，请参阅[按类别划分的函数](https://docs.amazonaws.cn/quicksight/latest/user/functions-by-category.html)。

**Topics**
+ [

# difference
](difference-function.md)
+ [

# distinctCountOver
](distinctCountOver-function.md)
+ [

# lag
](lag-function.md)
+ [

# lead
](lead-function.md)
+ [

# percentDifference
](percentDifference-function.md)
+ [

# avgOver
](avgOver-function.md)
+ [

# countOver
](countOver-function.md)
+ [

# maxOver
](maxOver-function.md)
+ [

# minOver
](minOver-function.md)
+ [

# percentileOver
](percentileOver-function.md)
+ [

# percentileContOver
](percentileContOver-function.md)
+ [

# percentileDiscOver
](percentileDiscOver-function.md)
+ [

# percentOfTotal
](percentOfTotal-function.md)
+ [

# periodOverPeriodDifference
](periodOverPeriodDifference-function.md)
+ [

# periodOverPeriodLastValue
](periodOverPeriodLastValue-function.md)
+ [

# periodOverPeriodPercentDifference
](periodOverPeriodPercentDifference-function.md)
+ [

# periodToDateAvgOverTime
](periodToDateAvgOverTime-function.md)
+ [

# periodToDateCountOverTime
](periodToDateCountOverTime-function.md)
+ [

# periodToDateMaxOverTime
](periodToDateMaxOverTime-function.md)
+ [

# periodToDateMinOverTime
](periodToDateMinOverTime-function.md)
+ [

# periodToDateSumOverTime
](periodToDateSumOverTime-function.md)
+ [

# stdevOver
](stdevOver-function.md)
+ [

# stdevpOver
](stdevpOver-function.md)
+ [

# varOver
](varOver-function.md)
+ [

# varpOver
](varpOver-function.md)
+ [

# sumOver
](sumOver-function.md)
+ [

# denseRank
](denseRank-function.md)
+ [

# rank
](rank-function.md)
+ [

# percentileRank
](percentileRank-function.md)
+ [

# runningAvg
](runningAvg-function.md)
+ [

# runningCount
](runningCount-function.md)
+ [

# runningMax
](runningMax-function.md)
+ [

# runningMin
](runningMin-function.md)
+ [

# runningSum
](runningSum-function.md)
+ [

# firstValue
](firstValue-function.md)
+ [

# lastValue
](lastValue-function.md)
+ [

# windowAvg
](windowAvg-function.md)
+ [

# windowCount
](windowCount-function.md)
+ [

# windowMax
](windowMax-function.md)
+ [

# windowMin
](windowMin-function.md)
+ [

# windowSum
](windowSum-function.md)

# difference


`difference` 函数计算基于一组分区和排序的度量与基于其他分区和排序的度量之间的差值。

`difference` 函数支持与基于 SPICE 和直接查询数据集的分析结合使用。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
difference
	(
	     measure 
	     ,[ sortorder_field ASC_or_DESC, ... ]
	     ,lookup_index,
	     ,[ partition field, ... ] 
	)
```

## 参数


 *度量*   
要查看差值的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *查找索引*   
查找索引可以为正数或负数，表示排序中的下一行（正数）或排序中的上一行（负数）。查找索引可以为 1-2,147,483,647。对于引擎 MySQL、MariaDB 和 Aurora MySQL 兼容版，查找索引仅限为 1。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum({Billed Amount})` 和下一行之间的差值（按 `Customer Region` 升序排序并按 `Service Line` 分区）。

```
difference(
     sum( {Billed Amount} ), 
     [{Customer Region} ASC],
     1,
     [{Service Line}]
)
```

以下示例计算 `Billed Amount` 和下一行之间的差值（按 `[{Customer Region}]` 分区）。表计算中的字段位于视觉对象的字段井中。

```
difference(
     sum( {Billed Amount} ), 
     [{Customer Region} ASC],
     1
)
```

红色突出显示部分显示每个金额如何相加 ( a \$1 b = c ) 以显示金额 a 和 c 之间的差值。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/differenceCalc.png)


# distinctCountOver


`distinctCountOver` 函数计算指定等级上按指定属性划分的操作数的不同计数。支持的等级为 `PRE_FILTER` 和 `PRE_AGG`。操作数必须是未聚合的。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
distinctCountOver
(
  measure or dimension field 
  ,[ partition_field, ... ]  
  ,calculation level 
)
```

## 参数


 *度量或维度字段*   
要进行计算的度量或维度，例如 `{Sales Amt}`。有效值为 `PRE_FILTER` 和 `PRE_AGG`。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
空白时此值默认为 `POST_AGG_FILTER`。`POST_AGG_FILTER` 不是此操作的有效等级，将导致错误消息。有关更多信息，请参阅在 [Amazon Quick 中使用关卡感知计算](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)。

## 示例


以下示例获取在 `PRE_AGG` 等级按 `City` 和 `State` 分区的 `Sales` 的不同计数。

```
distinctCountOver
(
  Sales, 
  [City, State], PRE_AGG
)
```

# lag


`lag` 函数计算基于指定分区和排序的度量的滞后（上一个）值。

`lag` 支持用于基于 SPICE 和直接查询数据集的分析。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
lag
(
lag
(
 measure
 ,[ sortorder_field ASC_or_DESC, ... ] 
 ,lookup_index
 ,[ partition_field, ... ] 
)] 
)
```

## 参数


*度量*   
要获取滞后值的度量。这可能包括聚合，例如，`sum({Sales Amt})`。

*排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

*查找索引*   
查找索引可以为正数或负数，表示排序中的下一行（正数）或排序中的上一行（负数）。查找索引可以为 1-2,147,483,647。对于引擎 MySQL、MariaDB 和 Amazon Aurora MySQL 兼容版，查找索引仅限为 1。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算上一个 `sum(sales)`（按源州/省分区并按 `cancellation_code` 升序排序顺序排序）。

```
lag
(
     sum(Sales), 
     [cancellation_code ASC], 
     1, 
     [origin_state_nm]
)
```

以下示例使用计算字段和 `lag` 在当前行的金额旁边显示上一行的销售额（按 `Order Date` 排序）。表计算中的字段位于视觉对象的字段井中。

```
lag(
     sum({Sales}),
     [{Order Date} ASC],
     1
)
```

以下屏幕截图显示了示例的结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/lagCalc.png)


以下示例使用计算字段和 `lag` 在当前行的金额旁边显示上一行的销售额（按 `Order Date` 排序，按 `Segment` 划分）。

```
lag
	(
		sum(Sales),
		[Order Date ASC],
		1, [Segment]
	)
```

以下屏幕截图显示了示例的结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/lagCalc2.png)


# lead


`lead` 函数计算基于指定分区和排序的度量的前导（下一个）值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
lead
(
     measure
     ,[ sortorder_field ASC_or_DESC, ... ]  
     ,lookup_index,
     ,[ partition_field, ... ]
)
```

## 参数


*度量*   
要获取前导值的度量。这可能包括聚合，例如，`sum({Sales Amt})`。

*排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

*查找索引*   
查找索引可以为正数或负数，表示排序中的下一行（正数）或排序中的上一行（负数）。查找索引可以为 1-2,147,483,647。对于引擎 MySQL、MariaDB 和 Amazon Aurora MySQL 兼容版，查找索引仅限为 1。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算下一个 `sum(sales)`（按源州/省分区并按 `cancellation_code` 升序排序顺序排序）。

```
lead
(
     sum(sales), 
     [cancellation_code ASC], 
     1, 
     [origin_state_nm]
)
```

以下示例使用计算字段和 lead 在当前行的金额旁边显示下一行的金额（按 `Customer Segment` 排序）。表计算中的字段位于视觉对象的字段井中。

```
lead(
     sum({Billed Amount}),
     [{Customer Segment} ASC],
     1
)
```

以下屏幕截图显示了示例的结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/leadCalc.png)


# percentDifference


`percentDifference` 函数根据分区、排序和查找索引计算当前值和比较值之间的百分比差值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
percentDifference
(
  measure 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,lookup index
  ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看百分比差值的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *查找索引*   
查找索引可以为正数或负数，表示排序中的下一行（正数）或排序中的上一行（负数）。查找索引可以为 1-2,147,483,647。对于引擎 MySQL、MariaDB 和 Aurora MySQL 兼容版，查找索引仅限为 1。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算当前和上一 `State` 的 `sum(Sales)` 之间的百分比差值（按 `Sales` 排序）。

```
percentDifference
(
  sum(amount), 
  [sum(amount) ASC],
  -1, 
  [State]
)
```

以下示例计算特定 `Billed Amount` 在另一个 `Billed Amount` 中所占的百分比（按 `[{Customer Region} ASC]` 排序）。表计算中的字段位于视觉对象的字段井中。

```
percentDifference
(
  sum( {Billed Amount} ), 
  [{Customer Region} ASC],
  1
)
```

以下屏幕截图显示了示例的结果。红色字母显示 `Customer Region` **APAC** 的总额 `Billed Amount` 比 **EMEA** 区域的金额低 24%。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentDifference.png)


# avgOver


`avgOver` 函数计算按维度列表划分的度量的平均值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
avgOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

以下示例显示 `Customer Region` 中的平均 `Billed Amount`。表计算中的字段位于视觉对象的字段井中。

```
avgOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

以下屏幕截图显示了示例的结果。通过添加 `Service Line`，将显示每个类别的总计费金额，并在计算字段中显示这三个值的平均值。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/avgOver.png)


## 参数


 *度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例获取按 `City` 和 `State` 分区的平均 `sum(Sales)`。

```
avgOver
(
     sum(Sales), 
     [City, State]
)
```

# countOver


`countOver` 函数计算按维度列表划分的维度或度量的计数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
countOver
(
  measure or dimension field 
  ,[ partition_field, ... ]  
  ,calculation level 
)
```

## 参数


 *度量或维度字段*   
要进行计算的度量或维度，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例获取按 `City` 和 `State` 分区的 `Sales` 的计数。

```
countOver
(
  Sales, 
  [City, State]
)
```

以下示例获取按 `City` 和 `State` 分区的 `{County}` 的计数。

```
countOver
(
  {County}, 
  [City, State]
)
```

以下示例显示 `Customer Region` 中的 `Billed Amount` 计数。表计算中的字段位于视觉对象的字段井中。

```
countOver
(
  sum({Billed Amount}),
  [{Customer Region}]
)
```

以下屏幕截图显示了示例的结果。由于不涉及其他字段，因此，计数为每个区域一个。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/countOver1.png)


如果添加其他字段，计数将发生变化。在以下屏幕截图中，我们添加 `Customer Segment` 和 `Service Line`。其中的每个字段包含三个唯一的值。由于具有 3 个类别、3 个服务行和 3 个区域，计算字段显示 9。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/countOver2.png)


如果在计算字段 `countOver( sum({Billed Amount}), [{Customer Region}, {Customer Segment}, {Service Line}]` 的分区字段中添加两个其他字段，则每一行的计数再次变为 1。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/countOver.png)


# maxOver


`maxOver` 函数计算按维度列表划分的度量或日期的最大值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
maxOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


 *度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例计算按 `City` 和 `State` 分区的最大 `sum(Sales)`。

```
maxOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例显示 `Customer Region` 中的最大 `Billed Amount`。表计算中的字段位于视觉对象的字段井中。

```
maxOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

以下屏幕截图显示了示例的结果。通过添加 `Service Line`，将显示每个类别的总计费金额，并在计算字段中显示这三个值的最大值。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/maxOver.png)


# minOver


`minOver` 函数计算按维度列表划分的度量或日期的最小值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
minOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例计算按 `City` 和 `State` 分区的最小 `sum(Sales)`。

```
minOver
(     
     sum(Sales), 
     [City, State]
)
```

以下示例显示 `Customer Region` 中的最小 `Billed Amount`。表计算中的字段位于视觉对象的字段井中。

```
minOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

以下屏幕截图显示了示例的结果。通过添加 `Service Line`，将显示每个类别的总计费金额，并在计算字段中显示这三个值的最小值。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/minOver.png)


# percentileOver


`percentileOver` 函数计算按维度列表划分的度量的第 *n* 个百分位数。Quick 中有两种`percentileOver`计算方式可供选择：
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileContOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileContOver-function.html) 使用线性内插来确定结果。
+ [https://docs.amazonaws.cn/quicksight/latest/user/percentileDiscOver-function.html](https://docs.amazonaws.cn/quicksight/latest/user/percentileDiscOver-function.html) 使用实际值来确定结果。

`percentileOver` 函数是 `percentileDiscOver` 的别名。

# percentileContOver


`percentileContOver` 函数根据 `measure` 中的实际数字计算百分位数。其使用字段井中应用的分组和排序。结果按指定计算等级的指定维度划分。

使用此函数回答以下问题：此百分位数中存在哪些实际数据点？ 要返回数据集中存在的最接近的百分位数值，请使用 `percentileDiscOver`。要返回数据集中可能不存在的精确的百分位数值，请改用 `percentileContOver`。

## 语法


```
percentileContOver (
    measure
  , percentile-n
  , [partition-by, …]
  , calculation-level
)
```

## Arguments


 *度量*   
指定用于计算百分位数的数值。参数必须是一个度量或指标。计算中将忽略 Null。

 *percentile-n*   
百分位数值可以是任何介于 0-100 的数字常数。百分比值 50 计算度量的中值。

 *分区依据*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。如果包含多个单词，则将列表中的每个字段括在 \$1 \$1（大括号）内。整个列表括在 []（方括号）内。

 *计算等级*   
 指定在哪里执行与计算顺序相关的计算。支持三种计算等级：  
+ PRE\$1FILTER
+ PRE\$1AGG
+ POST\$1AGG\$1FILTER（默认）– 要使用此计算等级，请在 `measure` 上指定聚合，例如 `sum(measure)`。
在可视化中进行聚合之前应用 PRE\$1FILTER 和 PRE\$1AGG。对于这两个计算等级，您无法在计算字段表达式中的 `measure` 上指定聚合。要了解有关计算级别及其适用时间的更多信息，请参阅 [Amazon Quick 中的评估顺序和 Quick](https://docs.amazonaws.cn/quicksight/latest/user/order-of-evaluation-quicksight.html) [中的使用级别感知计算](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)。

## 返回值


函数的结果为数字。

## percentileContOver 的示例
示例

以下示例有助于解释 percentileContOver 工作原理。

**Example 比较中值的计算等级**  
以下示例使用不同的计算等级和 `percentileContOver` 函数显示维度（类别）的中值。百分位数为 50。数据集按区域字段进行筛选。每个计算字段的代码如下所示：  
+ `example = left( category, 1 )`（一个简化示例。）
+ `pre_agg = percentileContOver ( {Revenue} , 50 , [ example ] , PRE_AGG)`
+ `pre_filter = percentileContOver ( {Revenue} , 50 , [ example ] , PRE_FILTER) `
+ `post_agg_filter = percentileContOver ( sum ( {Revenue} ) , 50 , [ example ], POST_AGG_FILTER )`

```
example   pre_filter     pre_agg      post_agg_filter
------------------------------------------------------
0            106,728     119,667            4,117,579
1            102,898      95,946            2,307,547
2             97,807      93,963              554,570  
3            101,043     112,585            2,709,057
4             96,533      99,214            3,598,358
5            106,293      97,296            1,875,648
6             97,118      69,159            1,320,672
7            100,201      90,557              969,807
```

# percentileDiscOver


`percentileDiscOver` 函数根据 `measure` 中的实际数字计算百分位数。其使用字段井中应用的分组和排序。结果按指定计算等级的指定维度划分。`percentileOver` 函数是 `percentileDiscOver` 的别名。

使用此函数回答以下问题：此百分位数中存在哪些实际数据点？ 要返回数据集中存在的最接近的百分位数值，请使用 `percentileDiscOver`。要返回数据集中可能不存在的精确的百分位数值，请改用 `percentileContOver`。

## 语法


```
percentileDiscOver (
     measure
   , percentile-n
   , [partition-by, …]
   , calculation-level
)
```

## Arguments


 *度量*   
指定用于计算百分位数的数值。参数必须是一个度量或指标。计算中将忽略 Null。

 *percentile-n*   
百分位数值可以是任何介于 0-100 的数字常数。百分比值 50 计算度量的中值。

 *分区依据*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。如果包含多个单词，则将列表中的每个字段括在 \$1 \$1（大括号）内。整个列表括在 []（方括号）内。

 *计算等级*   
 指定在哪里执行与计算顺序相关的计算。支持三种计算等级：  
+ PRE\$1FILTER
+ PRE\$1AGG
+ POST\$1AGG\$1FILTER（默认）– 要使用此计算等级，需要在 `measure` 上指定聚合，例如 `sum(measure)`。
在可视化中进行聚合之前应用 PRE\$1FILTER 和 PRE\$1AGG。对于这两个计算等级，您无法在计算字段表达式中的 `measure` 上指定聚合。要了解有关计算级别及其适用时间的更多信息，请参阅 [Amazon Quick 中的评估顺序和 Quick](https://docs.amazonaws.cn/quicksight/latest/user/order-of-evaluation-quicksight.html) [中的使用级别感知计算](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)。

## 返回值


函数的结果为数字。

## percentileDiscOver 的示例
示例

以下示例有助于解释 percentileDiscOver 工作原理。

**Example 比较中值的计算等级**  
以下示例使用不同的计算等级和 `percentileDiscOver` 函数显示维度（类别）的中值。百分位数为 50。数据集按区域字段进行筛选。每个计算字段的代码如下所示：  
+ `example = left( category, 1 )`（一个简化示例。）
+ `pre_agg = percentileDiscOver ( {Revenue} , 50 , [ example ] , PRE_AGG)`
+ `pre_filter = percentileDiscOver ( {Revenue} , 50 , [ example ] , PRE_FILTER) `
+ `post_agg_filter = percentileDiscOver ( sum ( {Revenue} ) , 50 , [ example ], POST_AGG_FILTER )`

```
example   pre_filter     pre_agg      post_agg_filter
------------------------------------------------------
0            106,728     119,667            4,117,579
1            102,898      95,946            2,307,547
2             97,629      92,046              554,570  
3            100,867     112,585            2,709,057
4             96,416      96,649            3,598,358
5            106,293      97,296            1,875,648
6             97,118      64,395            1,320,672
7             99,915      90,557              969,807
```

**Example 中值**  
以下示例计算按 `City` 和 `State` 分区的 `Sales` 的中值（第 50 个百分位数）。  

```
percentileDiscOver
(
  Sales, 
  50,
  [City, State]
)
```
以下示例计算按 `Customer Region` 分区的 `sum({Billed Amount})` 的第 98 个百分位数。表计算中的字段位于视觉对象的字段井中。  

```
percentileDiscOver
(
  sum({Billed Amount}), 
  98,
  [{Customer Region}]
)
```
以下屏幕截图显示这两个示例在图表上的样子。  

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentilOver-50-98.png)


# percentOfTotal


`percentOfTotal` 函数根据指定的维度计算度量在总数中所占的百分比。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
percentOfTotal
(
     measure 
     ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看总数百分比的聚合度量。目前，`percentOfTotal` 不支持 `distinct count` 聚合。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例创建一个计算以计算每个 `State` 在总数 `Sales` 中所占的百分比。

```
percentOfTotal
(
     sum(Sales), 
     [State]
)
```

以下示例计算特定 `Billed Amount` 在总数 `Billed Amount` 中所占的百分比（按 `[{Service Line} ASC]` 分区）。表计算中的字段位于视觉对象的字段井中。

```
percentOfTotal
(
     sum( {Billed Amount} ), 
     [{Service Line}]
)
```

以下屏幕截图显示了示例的结果。红色突出显示部分显示值为“`Billing`”的分区字段具有三个条目，每个区域一个条目。此服务行的总账单金额拆分为三个百分比，合计为 100%。这些百分比进行四舍五入，它们之和可能并不总是恰好为 100%。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentOfTotal.png)


# periodOverPeriodDifference


`periodOverPeriodDifference` 函数计算按期间粒度和偏移量指定的两个不同时间段内的度量差异。与差异计算不同，此函数使用基于日期的偏移量而不是固定大小的偏移量。这样可以确保仅比较正确日期，即使数据集中缺少数据点也是如此。

## 语法


```
periodOverPeriodDifference(
	measure, 
	date, 
	period, 
	offset)
```

## Arguments


 *度量*   
要对其执行 periodOverPeriod计算的聚合度量。

 *dateTime*   
我们计算 Period-Over-Period计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

 *offset*   
（可选）偏移量可以是正整数或负整数，表示要与之比较的前一时段（按周期指定）。例如，偏移量为 1 的季度周期表示与上一季度进行比较。  
默认值是 1。

## 示例


以下示例使用计算字段 `PeriodOverPeriod` 来显示昨天的销售额差异

```
periodOverPeriodDifference(sum(Sales), {Order Date})
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/MonthOverMonthDifference.png)


以下示例使用计算字段 `PeriodOverPeriod` 来显示前两个月的销售额差异。以下示例比较 `Mar2020` 和 `Jan2020` 的销售额。

```
periodOverPeriodDifference(sum(Sales),{Order Date}, MONTH, 1)
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/MonthOverMonthDifference2.png)


# periodOverPeriodLastValue


`periodOverPeriodLastValue` 函数计算按期间粒度和偏移量指定的上一个时间段中度量的最后一个（上一个）值。此函数使用基于日期的偏移量而不是固定大小的偏移量。这样可以确保仅比较正确日期，即使数据集中缺少数据点也是如此。

## 语法


```
periodOverPeriodLastValue(
	measure, 
	date, 
	period, 
	offset)
```

## Arguments


 *度量*   
要查看差值的聚合度量。

 *date*   
计算 periodOverPeriod计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
此参数默认为视觉对象聚合的粒度

 *offset*   
（可选）偏移量可以是正整数或负整数，表示要与之比较的前一时段（按周期指定）。例如，偏移量为 1 的季度周期表示与上一季度进行比较。  
此参数默认值为 1。

## 示例


以下示例使用视觉对象维度粒度和默认偏移量 1 计算销售额的逐月值。

```
periodOverPeriodLastValue(sum(Sales), {Order Date})
```

以下示例使用 `MONTH` 的固定粒度和固定偏移量 1 计算销售额的逐月值。

```
periodOverPeriodLastValue(sum(Sales), {Order Date},MONTH, 1)
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/MonthOverMonthLastValue.png)


# periodOverPeriodPercentDifference


`periodOverPeriodPercentDifference` 函数计算按期间粒度和偏移量指定的两个不同时间段内的百分比差异。与 percentDifference 不同，此函数使用基于日期的偏移量而不是固定大小的偏移量。这样可以确保仅比较正确日期，即使数据集中缺少数据点也是如此。

## 语法


```
periodOverPeriodPercentDifference(
	measure, 
	date, 
	period, 
	offset)
```

## Arguments


 *度量*   
要查看差值的聚合度量。

 *date*   
计算 periodOverPeriod计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
此参数默认为视觉对象聚合的粒度

 *offset*   
（可选）偏移量可以是正整数或负整数，表示要与之比较的前一时段（按周期指定）。例如，偏移量为 1 的季度周期表示与上一季度进行比较。  
此参数默认值为 1。

## 示例


以下示例使用视觉对象维度粒度和默认偏移量 1 计算销售额的逐月百分比差异。

```
periodOverPeriodPercentDifference(sum(Sales),{Order Date})
```

以下示例使用 `MONTH` 的固定粒度和固定偏移量 1 计算销售额的逐月百分比差异。

```
periodOverPeriodPercentDifference(sum(Sales), {Order Date}, MONTH, 1)
```

![\[这是示例计算的收益图像。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/MonthOverMonthPercentDifference.png)


# periodToDateAvgOverTime


`periodToDateAvgOverTime` 函数计算给定时间粒度（例如一个季度）到某个时间点的平均值。

## 语法


```
periodToDateAvgOverTime(
	measure, 
	dateTime,
	period)
```

## Arguments


 *度量*   
要对其执行计算的聚合度量

 *dateTime*   
计算 PeriodOverTime计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

## 示例


以下函数计算逐月平均付款金额。

```
periodToDateAvgOverTime(sum({fare_amount}), pickupDatetime, MONTH)
```

![\[这是示例计算的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDAvgOverTimeResults.png)


# periodToDateCountOverTime


`periodToDateCountOverTime` 函数计算给定时间粒度（例如一个季度）到某个时间点的维度或度量的计数。

## 语法


```
periodToDateCountOverTime(
	measure, 
	dateTime, 
	period)
```

## Arguments


 *度量*   
要对其执行计算的聚合度量

 *dateTime*   
计算 PeriodOverTime计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

## 示例


以下示例计算逐月供应商数量。

```
periodToDateCountOverTime(count(vendorid), pickupDatetime, MONTH)
```

![\[这是示例计算的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDCountOverTimeResults.png)


# periodToDateMaxOverTime


`periodToDateMaxOverTime` 函数计算给定时间粒度（例如一个季度）到某个时间点的度量的最大值。

## 语法


```
periodToDateMaxOverTime(
	measure, 
	dateTime, 
	period)
```

## Arguments


 *度量*   
要对其执行计算的聚合度量

 *dateTime*   
计算 PeriodOverTime计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

## 示例


以下示例计算逐月最高付款金额。

```
periodToDatemaxOverTime(max({fare_amount}), pickupDatetime, MONTH)
```

![\[这是示例计算的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDMaxOverTimeResults.png)


# periodToDateMinOverTime


`periodToDateMinOverTime` 函数计算给定时间粒度（例如一个季度）到某个时间点的度量的最小值。

## 语法


```
periodToDateMinOverTime(
	measure, 
	dateTime, 
	period)
```

## Arguments


 *度量*   
要对其执行计算的聚合度量

 *dateTime*   
计算 PeriodOverTime计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

## 示例


以下示例计算逐月最低付款金额。

```
periodToDateMinOverTime(min({fare_amount}), pickupDatetime, MONTH)
```

![\[这是示例计算的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDMinOverTimeResults.png)


# periodToDateSumOverTime


`periodToDateSumOverTime` 函数计算给定时间粒度（例如一个季度）到某个时间点的度量的总和。

## 语法


```
periodToDateSumOverTime(
	measure, 
	dateTime, 
	period)
```

## Arguments


 *度量*   
要对其执行计算的聚合度量

 *dateTime*   
计算 PeriodOverTime计算所依据的日期维度。

 *时段*   
（可选）您进行计算的时间段。`YEAR` 的粒度表示 `YearToDate` 计算，`Quarter` 表示 `QuarterToDate` 等等。有效的粒度包括 `YEAR`、`QUARTER`、`MONTH`、`WEEK`、`DAY`、`HOUR`、`MINUTE` 和 `SECONDS`。  
默认值为视觉对象日期维度粒度。

## 示例


以下函数返回逐月付款总金额。

```
periodToDateSumOverTime(sum({fare_amount}), pickupDatetime, MONTH)
```

![\[这是示例计算的结果图像（附插图）。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/PTDSumOverTime-example-results.png)


# stdevOver


`stdevOver` 函数根据样本计算按选定的一个属性或多个属性划分的指定度量的标准偏差。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
stdevOver
(
      measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据样本计算按 `City` 和 `State` 划分的 `sum(Sales)` 的标准差。

```
stdevOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例根据样本计算 `Customer Region` 的 `Billed Amount` 的标准差。表计算中的字段位于视觉对象的字段井中。

```
stdevOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

# stdevpOver


`stdevpOver` 函数根据总体偏差计算按选定的一个属性或多个属性划分的指定度量的标准偏差。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
stdevpOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据总体偏差计算按 `City` 和 `State` 划分的 `sum(Sales)` 的标准差。

```
stdevpOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例根据总体偏差计算 `Customer Region` 的 `Billed Amount` 的标准差。表计算中的字段位于视觉对象的字段井中。

```
stdevpOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

# varOver


`varOver` 函数根据样本计算按选定的一个属性或多个属性划分的指定度量的方差。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
varOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据样本计算按 `City` 和 `State` 划分的 `sum(Sales)` 的方差。

```
varOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例根据样本计算 `Customer Region` 的 `Billed Amount` 的方差。表计算中的字段位于视觉对象的字段井中。

```
varOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

# varpOver


`varpOver` 函数根据总体偏差计算按选定的一个属性或多个属性划分的指定度量的方差。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
varpOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据总体偏差计算按 `City` 和 `State` 划分的 `sum(Sales)` 的方差。

```
varpOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例根据总体偏差计算 `Customer Region` 的 `Billed Amount` 的方差。表计算中的字段位于视觉对象的字段井中。

```
varpOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

# sumOver


 `sumOver` 函数计算按维度列表划分的度量的总和。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
sumOver
(
     measure 
     ,[ partition_field, ... ] 
     ,calculation level 
)
```

## 参数


*度量*   
要进行计算的度量，例如 `sum({Sales Amt})`。如果计算级别设置为 `NULL` 或 `POST_AGG_FILTER`，则使用聚合。如果计算级别设置为 `PRE_FILTER` 或 `PRE_AGG`，请不要使用聚合。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例计算 `sum(Sales)` 的总和（按 `City` 和 `State` 分区）。

```
sumOver
(
     sum(Sales), 
     [City, State]
)
```

以下示例计算 `Customer Region` 中的 `Billed Amount` 的总和。表计算中的字段位于视觉对象的字段井中。

```
sumOver
(
     sum({Billed Amount}),
     [{Customer Region}]
)
```

以下屏幕截图显示了示例的结果。通过添加 `Customer Segment`，将为 `Customer Region` 计算每个类别的计费金额总和，并显示在计算字段中。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sumOver.png)


# denseRank


`denseRank` 函数计算某个度量或维度相对于指定分区的排名。它仅对每个项目计数一次（忽略重复的值），并分配“无孔的”排名，以使重复的值具有相同的排名。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
denseRank
(
  [ sort_order_field ASC_or_DESC, ... ] 
  ,[ partition_field, ... ] 
)
```

## 参数


 *排序顺序字段*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据降序排序顺序按 `State` 和 `City` 对 `max(Sales)` 进行密集排名。将为具有相同 `max(Sales)` 的任何城市分配相同的排名，并且下一个城市紧靠这些城市进行连续排名。例如，如果三个城市具有相同的排名，则第四个城市排名第二。

```
denseRank
(
  [max(Sales) DESC], 
  [State, City]
)
```

以下示例根据降序排序顺序按 `State` 对 `max(Sales)` 进行密集排名。将为具有相同 `max(Sales)` 的任何州/省分配相同的排名，并且下一个州/省紧靠这些州/省进行连续排名。例如，如果三个州/省具有相同的排名，则第四个州/省排名第二。

```
denseRank
(
  [max(Sales) DESC], 
  [State]
)
```

# rank


`rank` 函数计算某个度量或维度相对于指定分区的排名。它计算一次每个项目（即使是重复的），并分配一个“带孔的”排名以考虑到重复的值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
rank
(
  [ sort_order_field ASC_or_DESC, ... ]
  ,[ partition_field, ... ] 
)
```

## 参数


 *排序顺序字段*   
要在对数据排序时使用的一个或多个聚合度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例根据降序排序顺序按 `State` 和 `City` 在 `State` **WA** 中对 `max(Sales)` 进行排名。将为具有相同 `max(Sales)` 的任何城市分配相同的排名，但下一个排名包括所有以前存在的排名计数。例如，如果三个城市具有相同的排名，则第四个城市排名第四。

```
rank
(
  [max(Sales) DESC], 
  [State, City]
)
```

以下示例根据升序排序顺序按 `State` 对 `max(Sales)` 进行排名。将为具有相同 `max(Sales)` 的任何州/省分配相同的排名，但下一个排名包括所有以前存在的排名计数。例如，如果三个州/省具有相同的排名，则第四个州/省排名第四。

```
rank
(
  [max(Sales) ASC], 
  [State]
)
```

以下示例按总数 `Billed Amount` 对 `Customer Region` 进行排名。表计算中的字段位于视觉对象的字段井中。

```
rank(
  [sum({Billed Amount}) DESC]
)
```

在以下屏幕截图中显示了示例的结果以及总数 `Billed Amount`，因此，您可以了解每个区域是如何进行排名的。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rankCalc.png)


# percentileRank


`percentileRank` 函数计算某个度量或维度相对于指定分区的百分位数排名。百分位数排名值 (*x*) 表示当前项目高于指定分区中值的*x*百分比。百分位数排名值范围从 0（包含）到 100（不包含）。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
percentileRank
(
      [ sort_order_field ASC_or_DESC, ... ] 
     ,[ {partition_field}, ... ]
)
```

## 参数


 *排序顺序字段*   
要在对数据排序时使用的一个或多个聚合度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *计算级别*  
（可选）指定要使用的计算级别：  
+ **`PRE_FILTER`** – 在数据集筛选条件之前计算预筛选条件计算。
+ **`PRE_AGG`** – 在将聚合以及前 *N* 个和后 N 个筛选条件应用于视觉对象之前计算预聚合计算。
+ **`POST_AGG_FILTER`** –（默认）在显示视觉对象时计算表格计算。
留空时此值默认为 `POST_AGG_FILTER`。有关更多信息，请参阅在 Quick [中使用关卡感知计算。](https://docs.amazonaws.cn/quicksight/latest/user/level-aware-calculations.html)

## 示例


以下示例按 `State` 的降序顺序执行 `max(Sales)` 的百分位数排名。

```
percentileRank
(
     [max(Sales) DESC], 
     [State]
)
```

以下示例按总和 `Billed Amount` 执行 `Customer Region` 的百分位数排名。表计算中的字段位于视觉对象的字段井中。

```
percentileRank(
     [sum({Billed Amount}) DESC],
     [{Customer Region}]
)
```

在以下屏幕截图中显示了示例的结果以及总数 `Billed Amount`，因此，您可以了解每个区域是如何进行比较的。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentileRank.png)


# runningAvg


`runningAvg` 函数计算基于指定维度和排序顺序的度量的运行平均值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
runningAvg
(
  measure 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看其运行平均值的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Sales)` 的运行平均值（按 `Sales` 排序，并按 `City` 和 `State` 分区）。

```
runningAvg
(
  sum(Sales), 
  [Sales ASC], 
  [City, State]
)
```

以下示例计算 `Billed Amount` 的运行平均值（按月排序 (`[truncDate("MM",Date) ASC]`)）。表计算中的字段位于视觉对象的字段井中。

```
runningAvg
(
  sum({Billed Amount}),
  [truncDate("MM",Date) ASC]
)
```

# runningCount


`runningCount` 函数计算基于指定维度和排序顺序的度量或维度的运行计数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
runningCount
(
  measure_or_dimension 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,[ partition_field, ... ] 
)
```

## 参数


 *measure or dimension*   
要查看其运行计数的聚合度量或维度。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Sales)` 的运行计数（按 `Sales` 排序，并按 `City` 和 `State` 分区）。

```
runningCount
(
  sum(Sales), 
  [Sales ASC], 
  [City, State]
)
```

以下示例计算 `Billed Amount` 的运行计数（按月排序 (`[truncDate("MM",Date) ASC]`)）。表计算中的字段位于视觉对象的字段井中。

```
runningCount
(
  sum({Billed Amount}),
  [truncDate("MM",Date) ASC]
)
```

# runningMax


`runningMax` 函数计算基于指定维度和排序顺序的度量的运行最大值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
runningMax
(
  measure 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看其运行最大值的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Sales)` 的运行最大值（按 `Sales` 排序，并按 `City` 和 `State` 分区）。

```
runningMax
(
  sum(Sales), 
  [Sales ASC], 
  [City, State]
)
```

以下示例计算 `Billed Amount` 的运行最大值（按月排序 (`[truncDate("MM",Date) ASC]`)）。表计算中的字段位于视觉对象的字段井中。

```
runningMax
(
  sum({Billed Amount}),
  [truncDate("MM",Date) ASC]
)
```

# runningMin


`runningMin` 函数计算基于指定维度和排序顺序的度量的运行最小值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
runningMin
(
  measure 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看其运行最小值的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Sales)` 的运行最小值（按 `Sales` 排序，并按 `City` 和 `State` 分区）。

```
runningMin
(
  sum(Sales), 
  [Sales ASC], 
  [City, State]
)
```

以下示例计算 `Billed Amount` 的运行最小值（按月排序 (`[truncDate("MM",Date) ASC]`)）。表计算中的字段位于视觉对象的字段井中。

```
runningMin
(
  sum({Billed Amount}),
  [truncDate("MM",Date) ASC]
)
```

# runningSum


`runningSum` 函数计算基于指定维度和排序顺序的度量的运行总和。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
runningSum
(
  measure 
  ,[ sortorder_field ASC_or_DESC, ... ]  
  ,[ partition_field, ... ] 
)
```

## 参数


 *度量*   
要查看运行总和的聚合度量。

 *排序顺序字段*   
要在对数据排序时使用的一个或多个度量和维度（以逗号分隔）。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

 *分区字段*  
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Sales)` 的运行总和（按 `Sales` 排序，并按 `City` 和 `State` 分区）。

```
runningSum
(
  sum(Sales), 
  [Sales ASC], 
  [City, State]
)
```

以下示例计算 `Billed Amount` 的运行总和（按月排序 (`[truncDate("MM",Date) ASC]`)）。表计算中的字段位于视觉对象的字段井中。

```
runningSum
(
  sum({Billed Amount}),
  [truncDate("MM",Date) ASC]
)
```

以下屏幕截图显示了示例的结果。红色标签显示每个金额如何与下一金额相加 (`a + b = c`)，从而得出新的总额。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/runningSum.png)


# firstValue


`firstValue` 函数计算按指定属性划分和排序的聚合度量或维度的第一个值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
firstValue
	(
	     aggregated measure or dimension, 
	     [ sort_attribute ASC_or_DESC, ... ],
	     [ partition_by_attribute, ... ] 
	)
```

## 参数


*聚合度量或维度*   
要查看其第一个值的聚合度量或维度。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*按属性划分*  
（可选）要在划分时使用的一个或多个度量或维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算第一个 `Destination Airport`，按 `Flight Date` 排序，按 `Flight Date` 的升序顺序和 `Origin Airport` 划分。

```
firstValue(
    {Destination Airport}
    [{Flight Date} ASC],
    [
        {Origin Airport},
        {Flight Date}
    ]
)
```

# lastValue


`lastValue` 函数计算按指定属性划分和排序的聚合度量或维度的最后一个值。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
lastValue
	(
	     aggregated measure or dimension,
	     [ sort_attribute ASC_or_DESC, ... ],
	     [ partition_by_attribute, ... ] 
	)
```

## 参数


*聚合度量或维度*   
要查看其最后一个值的聚合度量或维度。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (`ASC`) 或降序 (`DESC`) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*按属性划分*  
（可选）要在划分时使用的一个或多个度量或维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `Destination Airport` 的最后一个值。该计算按 `Flight Date` 值排序，并按 `Flight Date` 值的升序排序和 `Origin Airport` 值划分。

```
lastValue(
    [{Destination Airport}],
    [{Flight Date} ASC],
    [
        {Origin Airport},
    	truncDate('DAY', {Flight Date})
    ]
)
```

# windowAvg


`windowAvg` 函数计算按指定属性划分和排序的自定义窗口中聚合度量的平均值。通常，在视觉对象显示指标和日期字段的时间序列上使用自定义窗口函数。例如，您可以使用 `windowAvg` 来计算移动平均值，这通常用于消除折线图中的噪声。

MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
windowAvg
	(
	     measure 
            , [sort_order_field ASC/DESC, ...]
            , start_index
            , end_index
	     ,[ partition_field, ... ] 
	)
```

## 参数


*度量*   
要获取其平均值的聚合度量，例如，`sum({Revenue})`。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*start index*   
起始索引 (start index) 是一个正整数，指示当前行之上的 *n* 行。起始索引 计算当前行上方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

*end index*   
结束索引 (end index) 是一个正整数，指示当前行之下的 *n* 行。结束索引 计算当前行下方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Revenue)` 的移动平均值（按 `SaleDate` 分区）。计算包括当前行上方的 3 行和下面的 2 行。

```
windowAvg
	(
	     sum(Revenue), 
	     [SaleDate ASC],
	     3,
            2
	)
```

下面的屏幕截图显示了此移动平均值示例的结果。sum(Revenue) 字段添加到图表中，以显示该收入与收入移动平均值之间的差异。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/windowAvg.png)


# windowCount


`windowCount` 函数计算按指定属性划分和排序的自定义窗口中聚合度量或维度的计数。通常，在视觉对象显示指标和日期字段的时间序列上使用自定义窗口函数。

MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
windowCount
	(
	     measure_or_dimension 
            , [sort_order_field ASC/DESC, ...]
            , start_index
            , end_index
	     ,[ partition_field, ... ] 
	)
```

## 参数


*measure or dimension*   
要获取其平均值的聚合度量，例如，`sum({Revenue})`。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*start index*   
起始索引 (start index) 是一个正整数，指示当前行之上的 *n* 行。起始索引 计算当前行上方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

*end index*   
结束索引 (end index) 是一个正整数，指示当前行之下的 *n* 行。结束索引 计算当前行下方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Revenue)` 的移动计数（按 `SaleDate` 分区）。计算包括当前行上方的 3 行和下面的 2 行。

```
windowCount
	(
	     sum(Revenue), 
	     [SaleDate ASC],
	     3,
               2
	)
```

# windowMax


`windowMax` 函数计算按指定属性划分和排序的自定义窗口中聚合度量的最大值。通常，在视觉对象显示指标和日期字段的时间序列上使用自定义窗口函数。您可以使用 `windowMax` 来帮助确定指标在一段时间内的最大值。

MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
windowMax
	(
	     measure 
            , [sort_order_field ASC/DESC, ...]
            , start_index
            , end_index
	     ,[ partition_field, ... ] 
	)
```

## 参数


*度量*   
要获取其平均值的聚合度量，例如，`sum({Revenue})`。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*start index*   
起始索引 (start index) 是一个正整数，指示当前行之上的 *n* 行。起始索引 计算当前行上方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

*end index*   
结束索引 (end index) 是一个正整数，指示当前行之下的 *n* 行。结束索引 计算当前行下方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果包含多个单词，则将列表中的每个字段括在 \$1\$1（大括号）内。整个列表括在 []（方括号）内。

## 示例


以下示例计算按 `SaleDate` 分区的 `sum(Revenue)` 的随后 12 个月最大值。计算包括当前行上方的 12 行和下面的 0 行。

```
windowMax
	(
	     sum(Revenue), 
	     [SaleDate ASC],
	     12,
               0
	)
```

以下屏幕截图显示了此随后 12 个月示例的结果。sum(Revenue) 字段添加到了图表中，以显示该收入与随后 12 个月最大收入之间的差异。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/windowMax.png)


# windowMin


`windowMin` 函数计算按指定属性划分和排序的自定义窗口中聚合度量的最小值。通常，在视觉对象显示指标和日期字段的时间序列上使用自定义窗口函数。您可以使用 `windowMin` 来帮助确定指标在一段时间内的最小值。

MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
windowMin
	(
	     measure 
            , [sort_order_field ASC/DESC, ...]
            , start_index
            , end_index
	     ,[ partition_field, ... ] 
	)
```

## 参数


*度量*   
要获取其平均值的聚合度量，例如，`sum({Revenue})`。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*start index*   
起始索引 (start index) 是一个正整数，指示当前行之上的 *n* 行。起始索引 计算当前行上方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

*end index*   
结束索引 (end index) 是一个正整数，指示当前行之下的 *n* 行。结束索引 计算当前行下方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

## 示例


以下示例计算按 `SaleDate` 分区的 `sum(Revenue)` 的随后 12 个月最小值。计算包括当前行上方的 12 行和下面的 0 行。

```
windowMin
	(
	     sum(Revenue), 
	     [SaleDate ASC],
	     12,
               0
	)
```

以下屏幕截图显示了此随后 12 个月示例的结果。sum(Revenue) 字段添加到了图表中，以显示该收入与随后 12 个月最小收入之间的差异。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/windowMin.png)


# windowSum


`windowSum` 函数计算按指定属性划分和排序的自定义窗口中聚合度量的总和。通常，在视觉对象显示指标和日期字段的时间序列上使用自定义窗口函数。

MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

## 语法


括号是必需的。要查看哪些参数是可选的，请参阅以下说明。

```
windowSum
	(
	     measure 
            , [sort_order_field ASC/DESC, ...]
            , start_index
            , end_index
	     ,[ partition_field, ... ] 
	)
```

## 参数


*度量*   
要获取其总和的聚合度量，例如，`sum({Revenue})`。  
对于引擎 MySQL、MariaDB 和兼容 MySQL 的 Amazon Aurora，查找索引仅限为 1。MySQL 8 之前和 MariaDB 10.2 之前的版本不支持窗口函数。

*sort attribute*   
要在对数据排序时使用的一个或多个聚合字段（度量和/或维度），以逗号分隔。您可以指定升序 (**ASC**) 或降序 (**DESC**) 排序顺序。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

*start index*   
起始索引 (start index) 是一个正整数，指示当前行之上的 *n* 行。起始索引 计算当前行上方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

*end index*   
结束索引 (end index) 是一个正整数，指示当前行之下的 *n* 行。结束索引 计算当前行下方的可用数据点，而不是计算实际时间段。如果数据稀疏（例如，缺少几个月或几年），请相应地调整索引。

 *分区字段*   
（可选）要在分区时使用的一个或多个维度（以逗号分隔）。  
如果列表中的某个字段不止包含一个单词，则用 \$1 \$1 （大括号）将该字段括起来。整个列表括在 []（方括号）内。

## 示例


以下示例计算 `sum(Revenue)` 的移动总和（按 `SaleDate` 排序）。计算包括当前行上方的 2 行和前面的 1 行。

```
windowSum
	(
	     sum(Revenue), 
	     [SaleDate ASC],
	     2,
            1
	)
```

以下示例显示随后 12 个月的总和。

```
windowSum(sum(Revenue),[SaleDate ASC],12,0)
```

下面的屏幕截图显示了此随后 12 个月总和示例的结果。`sum(Revenue)` 字段添加到图表中，以显示该收入与随后 12 个月总和收入之间的差异。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/windowSum.png)


# 联接数据


您可以使用 Amazon Quick Sight 中的联接界面来联接来自一个或多个数据源的对象。通过使用 Amazon Quick Sight 加入数据，您可以合并不同的数据，而无需复制来自不同来源的数据。

## 联接数据集的类型


在两个 Quick Sight *逻辑表*之间执行联接，其中每个逻辑表都包含有关如何获取数据的信息。在 Quick Sight 中编辑数据集时，页面上半部分的联接图将每个逻辑表显示为矩形块。

Quick Sight 中有两种不同类型的联接数据集：同源数据集和跨源数据集。数据集没有任何联接或满足以下所有条件时，该数据集视为同源数据集：
+ 如果任何逻辑表引用了 Quick Sight 数据源：
  + 此数据集中的所有逻辑表都必须引用相同的 Quick Sight 数据源。如果两个单独的 Quick Sight 数据源引用同一个底层数据库，则不适用。它必须是完全相同的 Quick Sight 数据源。有关使用单个数据来源的更多信息，请参阅 [使用现有的数据来源创建数据集](create-a-data-set-existing.md)。
+ 如果任何逻辑表引用的是作为父数据集的 Quick Sight 数据集：
  + 父数据集必须使用直接查询。
  + 父数据集必须引用相同的 Quick Sight 数据源。

如果不满足上述条件，则数据集被视为跨源联接数据集。

## 关于联接数据集的事实


同源和跨源数据集联接都有以下限制。

### 联接数据集中可以包含的表数上限是多少？


所有联接数据集最多可以包含 32 个表。

### 联接数据能有多大？


允许的最大联接大小由所使用的查询模式和查询引擎决定。下表提供了有关要联接的表的不同大小限制的信息。大小限制适用于所有辅助表的总和。主表没有联接大小限制。
+ **同源表**-当表源自单个查询数据源时，Quick Sight 对联接大小不施加任何限制。这不会覆盖源查询引擎可能存在的联接大小限制。
+ **跨源数据集** - 这种类型的联接包含来自不同数据来源但未存储在 SPICE 中的表。对于这些类型的联接，Quick Sight 会自动识别数据集中最大的表。所有其他辅助表的总大小必须小于 1 GB。
+ **存储在 SPICE 中的数据集** - 这种类型的联接包含全部提取到 SPICE 的表。此联接中所有辅助表的总大小不能超过 20 GB。

有关 SPICE 数据库大小计算的更多信息，请参阅 [估计 SPICE 数据集的大小](spice.md#spice-capacity-formula)。

### 联接数据集可以使用直接查询吗？


假设使用直接查询没有其他限制，则同源数据集支持直接查询。例如，S3 数据来源不支持直接查询，因此同源的 S3 数据集仍必须使用 SPICE。

跨源数据集必须使用 SPICE。

### 联接中可以使用计算字段吗？


所有联接数据集都可以使用计算字段，但不能在任何 on 子句中使用计算字段。

### 联接中可以使用地理数据吗？


同源数据集支持地理数据类型，但不能在任何 on 子句中使用地理字段。

跨源数据集不支持任何形式的地理数据。

有关跨数据源联接表的一些示例，请参阅 Amazon 大数据博客上的 “[在 Amazon Quick Sight 上跨数据源联接](https://www.amazonaws.cn/blogs/big-data/joining-across-data-sources-on-amazon-quicksight/)” 一文。

## 创建联接


要联接表以便在数据集中使用，请按照以下过程操作。在开始之前，请导入或连接到您的数据。您可以在 Amazon Quick Sight 支持的任何数据源之间创建联接，但物联网 (IoT) 数据除外。例如，您可以在 Amazon S3 存储桶中添加逗号分隔值 (.csv) 文件、表、视图、SQL 查询或 JSON 对象。

**添加一个或多个联接**

1. 打开您希望使用的数据集。

1. （可选）在开始之前，请根据数据样本决定是否要禁用自动生成的预览。要将其关闭，请选择右上角的**自动预览**。默认情况下，此选项处于打开状态。

1. 如果您尚未选择查询模式，请选择**查询模式**。

   选择 **SPICE** 将您的数据集存储在 [SPICE](spice.md) 中，或者选择**直接查询**以每次提取实时数据。如果您的数据集包含一个或多个手动上传的文件，则您的数据集将自动存储在 SPICE 中。

   如果您愿意 **SPICE**，则数据会被提取到 Quick Sight 中。使用数据集的视觉对象在 SPICE 中运行查询，而不是在数据库上运行查询。

   如果选择**直接查询**，则不会将数据摄取到 SPICE。使用数据集的视觉对象数据库上运行查询，而不是在 SPICE 中运行查询。

   如果选择**查询模式**，请确保在联接中设置唯一键（如果适用），以提高加载视觉对象时的性能。

1. 在数据准备页面上，选择**添加数据**。

1. 在打开的**添加数据**页面中，选择以下选项之一，然后完成以下步骤：
   + 从数据集中添加数据：

     1. 选择**数据集**。

     1. 从列表中选择一个数据集。

     1. 选定**选择**。
   + 从数据来源添加数据：

     1. 选择**数据来源**。

     1. 从列表中选择一个数据来源。

     1. 选定**选择**。

     1. 从列表中选择一个表。

     1. 选定**选择**。
   + 通过多次添加表来创建自联接。名称后面会出现一个计数器。例如 **Product**、**Product (2)** 和 **Product (3)**。**字段**或**筛选条件**部分中的字段名称包括相同的计数器，以便您查看字段来自表的哪个实例。
   + 选择**上传文件**，然后选择要联接的文件以添加新文件。

1. （可选）选择**使用自定义 SQL** 打开查询编辑器并为 SQL 数据来源编写查询。

1. （可选）添加数据后，通过选择每个表格的菜单图标与其进行交互。通过拖放表来重新排列。

   将出现一个带有红点的图标，以表示您需要配置此联接。对于尚未配置的联接，会出现两个红点。要创建联接，请选择第一个联接配置图标。

1. （可选）要更改现有联接，请通过选择两个表之间的联接图标来重新打开**联接配置**。

   随即将打开**联接配置**窗格。在联接界面上，指定联接类型以及用于联接表的字段。

1. 在屏幕的底部，您可以看到选项，用于将一个表中的字段设置为等于另一个表中的字段。

   1. 在 **Join clauses (联接子句)** 部分中，选择各个表的连接列。

     （可选）如果您选择的表在多个列上联接，请选择 **Add a new join clause (添加新的联接子句)**。执行此操作会将另一行添加到联接子句，这样您可以指定下一组要联接的列。重复该过程，直到您指定了两个数据对象的所有联接列。

1. 在**联接配置**窗格中，选择要应用的联接类型。如果联接字段是其中一个或两个表的唯一键，请启用唯一键设置。唯一键仅适用于直接查询，不适用于 SPICE 数据。

   有关联接的更多信息，请参阅 [联接类型](#join-types)。

1. 选择 **Apply (应用)** 以确认您的选择。

   要取消而不进行任何更改，请选择**取消**。

1. 工作区中的联接图标会发生变化以显示新的关系。

1. （可选）在**字段**部分中，您可以使用每个字段的菜单执行以下一项或多项操作：
   + 向地理空间字段**添加层次结构**。
   + **包含**或**排除**字段。
   + 针对字段**编辑名称和描述**。
   + **更改数据类型**。
   + **添加计算**（计算字段）。
   + **将访问权限限制为仅我可访问**，因此只有您能看见。将字段添加到已在使用的数据集时，这会非常有用。

1. （可选）在**筛选条件**部分中，您可以添加或编辑筛选条件。有关更多信息，请参阅 [使用 Amazon Quick Sight 筛选数据](adding-a-filter.md)。

## 联接类型


Amazon Quick Sight 支持以下联接类型：
+ 内部联接
+ 左外部联接和右外部联接
+ 完全外部联接

我们来深入了解一下这些联接类型对数据所执行的操作。对于示例数据，我们使用以下名为 `widget` 和 `safety rating` 表。

```
SELECT * FROM safety-rating

rating_id	safety_rating
1		    A+
2		    A
3		    A-
4		    B+
5		    B

SELECT * FROM WIDGET

widget_id	   widget	safety_rating_id
1		    WidgetA		3
2		    WidgetB		1
3		    WidgetC		1
4		    WidgetD		2
5		    WidgetE
6		    WidgetF		5
7		    WidgetG
```

### 内部联接


如果您只想查看两个表之间存在匹配项的数据，请使用内部联接。例如，假设您对 **safety-rating** 和 **widget** 表执行内部联接。

在下面的结果集中，将删除没有安全评级的小部件，并删除没有关联小部件的安全评级。只包含完全匹配的行。

```
SELECT * FROM safety-rating
INNER JOIN widget
ON safety_rating.rating_id = widget.safety_rating_id

rating_id    safety_rating    widget_id    widget        safety_rating_id
3	        A-                1        WidgetA        3
1	        A+                2        WidgetB        1
1	        A+                3        WidgetC        1
2	        A                 4        WidgetD        2
5	        B                 6        WidgetF        5
```

### 左外部联接和右外部联接


这也称为左外部联接或右外部联接。如果要查看一个表中的所有数据，而只想查看另一个表中的匹配行，请使用向左或向右外连接。

在图形界面中，您可以查看哪个表位于左侧或右侧。在 SQL 语句中，第一个表被视为位于左侧。因此，选择左外部联接相对于右外部联接，仅取决于表在查询工具中的排列。

例如，假设您对（左表）和 `safety-rating``widgets`（右表）执行左外连接。在这种情况下，将返回所有 `safety-rating` 行并仅返回匹配的 `widget` 行。在结果集中，您可以看到没有匹配数据的空白。

```
SELECT * FROM safety-rating
LEFT OUTER JOIN widget
ON safety_rating.rating_id = widget.safety_rating_id

rating_id    safety_rating    widget_id   widget          safety_rating_id
1	        A+                2        WidgetB   	1
1	        A+                3        WidgetC   	1
2	        A                 4        WidgetD   	2
3	        A-                1        WidgetA   	3
4	        B+
5	        B                 6        WidgetF   	5
```

如果您改为使用右外连接，请按相同的顺序调用表，`safety-rating`因此在左边`widgets`，在右边。在这种情况下，只返回匹配的 `safety-rating` 行并返回所有 `widget` 行。在结果集中，您可以看到没有匹配数据的空白。

```
SELECT * FROM safety-rating
RIGHT OUTER JOIN widget
ON safety_rating.rating_id = widget.safety_rating_id

rating_id    safety_rating    widget_id   widget          safety_rating_id
3	        A-                1	WidgetA   	 3
1	        A+                2	WidgetB   	 1
1	        A+                3	WidgetC   	 1
2	        A                 4	WidgetD   	 2
                                  5       WidgetE
5	        B                 6	WidgetF   	 5
                                  7       WidgetG
```

### 完全外部联接


有时候也仅称为外部联接，不过此术语可以指代左外部联接、右外部联接或完全外部联接。为了定义含义，我们使用完整名称：完全外部联接。

使用完全外联接查看匹配的数据，以及两个表中不匹配的数据。联接的类型包括来自两个表中的所有行。例如，如果您对 `safety-rating` 和 `widget` 表执行完全外部联接，则会返回所有行。行在匹配的位置对齐，所有额外的数据包含在单独的行中。在结果集中，您可以看到没有匹配数据的空白。

```
SELECT * FROM safety-rating
FULL OUTER JOIN widget
ON safety_rating.rating_id = widget.safety_rating_id

rating_id    safety_rating    widget_id   widget         safety_rating_id
1	        A+                2	WidgetB   	1
1	        A+                3	WidgetC   	1
2	        A                 4	WidgetD   	2
3	        A-                1	WidgetA   	3
4	        B+
5	        B                 6	WidgetF   	5
                                  5	WidgetE
                                  7	WidgetG
```

# 准备数据字段以便在 Amazon Quick Sight 中进行分析
准备数据字段

在开始分析和可视化数据之前，您可以准备数据集中的字段（列）以进行分析。您可以编辑字段名称和描述、更改字段的数据类型、为字段设置向下钻取层次结构等。

使用以下主题准备数据集中的字段。

**Topics**
+ [

# 编辑字段名称和描述
](changing-a-field-name.md)
+ [

# 将字段设置为维度或度量
](setting-dimension-or-measure.md)
+ [

# 更改字段数据类型
](changing-a-field-data-type.md)
+ [

# 在 Quick Sight 中向视觉数据添加向下钻取
](adding-drill-downs.md)
+ [

# 选择字段
](selecting-fields.md)
+ [

# 在 Amazon 中将字段整理到文件夹中 QuickSight
](organizing-fields-folder.md)
+ [

# 映射和联接字段
](mapping-and-joining-fields.md)

# 编辑字段名称和描述


您可以更改数据来源提供的任何字段名称和描述。如果您更改在计算字段中使用的字段的名称，请确保还要在计算字段函数中更改该名称。否则，该函数将会失败。

**更改字段名称或描述**

1. 在数据准备页面的**字段**窗格中，选择要更改的字段上的三点图标。然后选择**编辑名称和描述**。

1. 输入要更改的新名称或描述，然后选择**应用**。

您也可以在数据准备页面上更改字段的名称和描述。为此，请在该页面下半部分的**数据集**表中选择要更改的字段的列标题。然后在那里进行更改。

# 将字段设置为维度或度量


在 **Field list** 窗格中，维度字段具有蓝色图标，度量字段具有绿色图标。*维度*是文本或日期字段，可以是项目（如产品）或与度量相关的属性。您可以使用维度对这些项目或属性（如销售数据的销售日期）进行分区。*度量*是用于度量、比较和聚合的数值。

在某些情况下，Quick Sight 会将字段解释为要将其用作维度（或反之亦然）的度量。如果是这样的话，您可以更改该字段的设置。

如果更改字段的度量或维度设置，则使用该数据集的分析中所有视觉对象的度量或维度设置也会随之更改。但是，不会更改数据集中的度量或维度设置。

## 更改字段的度量或维度设置


使用以下过程更改字段的维度或度量设置

**更改字段的维度或度量设置**

1. 在**字段列表**窗格中，将鼠标指针悬停在要更改的字段上。

1. 选择字段名称右侧的选择器图标，然后根据需要选择 **Convert to dimension** 或 **Convert to measure**。

# 更改字段数据类型


当 Quick Sight 检索数据时，它会根据字段中的数据为每个字段分配一种数据类型。可能的数据类型有：
+ 日期 – 日期数据类型用于支持格式的日期数据。有关 Quick Sight 支持的日期格式的信息，请参阅[数据来源限额](data-source-limits.md)。
+ 小数 – 小数数据类型用于需要一个或多个小数位精度的数值数据，例如 18.23。Decimal 数据类型支持在小数点右侧最多包含四个小数位的值。在两种情况下，比此小数位数更大的值会截断至小数点后第四位。一种是在数据准备或分析中显示这些值时，一种是将这些值导入 Quick Sight 时。例如，13.00049 将被截断为 13.0004。
+ 地理空间 – 地理空间数据类型用于地理空间数据（例如经度和纬度）或城市和国家/地区。
+ 整数 – 整数数据类型用于仅包含整数的数值数据，例如 39。
+ 字符串 – 字符串数据类型用于非日期字母数字数据。

Quick Sight 读取列中一小部分行样本以确定数据类型。在小部分样本量中最常出现的数据类型是建议的数据类型。在某些情况下，主要包含数字的列中可能存在空值（被 Quick Sight 视为字符串）。在这些情况下，可能是字符串数据类型是样本行集中最常见的类型。您可以手动修改列的数据类型使其成为整数。使用以下过程了解操作方法。

## 在数据准备期间更改字段数据类型
在数据准备期间更改类型

在数据准备期间，您可以更改数据来源中任何字段的数据类型。在**更改数据类型**菜单上，您可以将不包含聚合的计算字段更改为地理空间类型。您可以通过直接修改计算字段的表达式对计算字段的数据类型进行其他更改。Quick Sight 会根据您选择的数据类型转换字段数据。将跳过包含与该数据类型不兼容的数据的行。例如，假设您将以下字段从字符串转换为整数。

```
10020
36803
14267a
98457
78216b
```

将跳过在该字段中包含字母数字字符的所有记录，如下所示。

```
10020
36803
98457
```

如果您的数据库数据集的字段不受 Quick Sight 支持，请在数据准备期间使用 SQL 查询。然后，使用 `CAST` 或 `CONVERT` 命令 (取决于源数据库支持的命令) 更改字段数据类型。有关在数据准备期间添加 SQL 查询的更多信息，请参阅[使用 SQL 自定义数据](adding-a-SQL-query.md)。有关 Quick Sight 如何解释不同源数据类型的更多信息，请参阅[外部数据来源支持的数据类型](supported-data-types-and-values.md#supported-data-types)。

您可能具有作为维度而非指标的数值字段，例如邮政编码和大多数 ID 号。在这些情况下，在数据准备期间为其指定字符串数据类型是非常有用的。这样做可以让 Quick Sight 明白，它们对执行数学计算没有用，只能与`Count`函数聚合。有关 Quick Sight 如何使用维度和度量的更多信息，请参阅[将字段设置为维度或度量](setting-dimension-or-measure.md)。

在 [SPICE](spice.md) 中，默认截断从数字转换为整数的数值。如果您要改为舍入数字，可以使用 [`round`](round-function.md) 函数创建一个计算字段。要查看数字在摄取到 SPICE 前是否已四舍五入或截断，请检查您的数据库引擎。

**在数据准备期间更改字段数据类型**

1. 从 Quick Sight 主页中，选择左侧**的数据**。在**数据**选项卡中，选择所需的数据集，然后选择**编辑数据集**。

1. 在数据预览窗格中，选择要更改的字段下方的数据类型图标。

1. 选择目标数据类型。系统会列出当前所用类型以外的数据类型。

## 在分析中更改字段数据类型
在分析中更改类型

您可以使用 **Field list** 窗格、视觉对象字段井或视觉对象编辑器更改分析上下文中数字字段的数据类型。数字字段默认显示为数字，但您可以选择将它们显示为货币或百分比。您不能更改字符串或日期字段的数据类型。

如果更改分析中字段的数据类型，则使用该数据集的分析中所有视觉对象的数据类型也会随之更改。但是，不会更改数据集中的度量或维度设置。

**注意**  
如果您在使用透视表视觉对象，在某些情况下，应用表计算会更改单元格值的数据类型。如果数据类型在应用的计算中没有意义，会发生这种类型的更改。  
例如，假设您向修改为使用货币数据类型的数值字段应用 `Rank` 函数。在这种情况下，单元格值将显示为数字，而不是货币。同样，如果应用 `Percent difference` 函数，单元格值将显示为百分比而不是货币。

**更改字段的数据类型**

1. 请选择以下选项之一：
   + 在**字段列表**窗格中，将鼠标指针悬停在要更改的数值字段上。然后选择字段名称右侧的选择器图标。
   + 在包含与要更改的数值字段关联的视觉对象编辑器的任何视觉对象上，选择该视觉对象编辑器。
   + 展开**字段井**窗格，然后选择与要更改的数值字段关联的字段井。

1. 选择 **Show as (显示为)**，然后选择 **Number (数字)**、**Currency (货币)** 或 **Percent (百分比)**。

# 在 Quick Sight 中向视觉数据添加向下钻取
添加向下钻取

数据透视表之外的所有视觉对象类型，均能够创建视觉元素的字段层次结构。您可以深入该层次结构，查看不同级别的数据。例如，您可以在条形图上将“国家/地区”、“省/自治区/直辖市”以及“城市”字段与 X 轴关联。然后，您可以向下或向上钻取，查看每个等级的数据。在向下钻取每个级别时，显示的数据将根据您向下钻取到的字段中的值进行细化。例如，如果您向下钻取到加利福尼亚州，将会看到加利福尼亚州的所有城市的数据。

不同的视觉对象类型，用于创建向下钻取的字段井也不同。请参考每种视觉对象类型的相关主题，了解其向下钻取支持的更多信息。

当您将日期字段与视觉对象的向下钻取字段井关联时，将自动为日期添加向下钻取功能。在这种情况下，您可以随时向上和向下钻取各个日期粒度级别。如果在这些数据集中定义了地理空间分组，也会为这些分组自动添加向下钻取功能。

使用下表确定支持每种视觉对象类型的向下钻取的字段井/视觉对象编辑器。


****  

| 视觉对象类型 | 字段井或视觉对象编辑器 | 
| --- | --- | 
| 条形图（所有水平条形图） | Y axis (Y 轴) 和 Group/Color (组/颜色) | 
| 条形图（所有垂直条形图） | X axis (X 轴) 和 Group/Color (组/颜色) | 
| 组合图 (全部) | X axis (X 轴) 和 Group/Color (组/颜色) | 
| 地理空间图 | Geospatial (地理空间) 和 Color (颜色) | 
| 热图 | Rows (行) 和 Columns (列) | 
| KPIs | Trend Group (趋势组) | 
| 折线图 (全部) | X axis (X 轴) 和 Color (颜色) | 
| 饼图 | Group/Color (组/颜色) | 
| 散点图 | Group/Color (组/颜色) | 
| 树形图 | Group by (分组依据) | 

**重要**  
表或数据透视表不支持向下钻取。

## 添加向下钻取


要向视觉对象添加向下钻取级别，请按照以下过程操作。

**将向下钻取等级添加到视觉对象**

1. 在分析页面上，选择要添加向下钻取的视觉对象。

1. 将字段项拖到**字段井**中。

1. 如果数据集具有定义的层次结构，可以将整个层次结构作为一个整体拖动到字段井中。例如地理空间或坐标数据。在这种情况下，不需要按照剩余步骤操作。

   如果没有预定义的层次结构，可以按照剩余步骤所述在分析中创建一个。

1. 根据视觉对象类型，将要在向下钻取层次结构中使用的字段拖到适当的字段井上。确保拖动字段的标签显示 **Add drill-down layer**。根据您希望拖动的字段在所创建的层次结构中的位置，将其置于现有字段的上方或下方。

1. 继续操作，添加所需的各个层次结构级别。要从层次结构中删除一个字段，请选择该字段，然后选择 **Remove**。

1. 要向下或向上钻取以查看层次结构的不同级别的数据，请在视觉对象（如线或条）上选择一个元素，然后选择 **Drill down to <lower level> (向下钻取到 <较低级别>** 或 **Drill up to <higher level> (向上钻取到 <较高级别>**。在本示例中，可以从 `car-make` 级别向下钻取到 `car-model` 查看该级别的数据。如果从 `car-model`Ford** ** 向下钻取到 `car-make`，则只会看到该 car-make 中的 `car-model`。

   向下钻取到 `car-model` 级别后，可以进一步向下钻取以查看 `make-year` 数据，或向上返回 `car-make`。如果从表示 `make-year`Ranger** 的条向下钻取到 **，则只会看到相应车型的年份。

# 选择字段


准备数据时，可以选择一个或多个字段以对其执行操作，例如将其排除或将其添加到文件夹。

要在“数据准备”窗格中选择一个或多个字段，请单击或点击左侧**字段**窗格中的一个或多个字段。然后，您可以选择字段名称右侧的字段菜单（三个点），然后选择要执行的操作。将对所有选定的字段上执行操作。

您可以在 **Fields** 窗格的顶部选择 **All** 或 **None**，同时选中或取消选中所有字段。

如果编辑一个数据集并排除在视觉对象中使用的字段，将会破坏该视觉对象。下次打开该分析时，您可以对视觉对象进行修复。

## 搜索字段


如果**字段**窗格中显示的字段过长，您可以通过在**搜索表**中输入搜索词来搜索并找到特定的字段。系统会显示名称中包含该搜索词的任何字段。

搜索不区分大小写，不支持通配符。选择搜索框右侧的取消图标 (**X**) 可返回并查看所有字段。

# 在 Amazon 中将字段整理到文件夹中 QuickSight
将字段整理到文件夹中

在 Quick Sight 中准备数据时，您可以使用文件夹为企业中的多位作者整理字段。将字段整理到文件夹和子文件夹中可以让作者更轻松地在数据集中查找和理解字段。

您可以在准备数据集或编辑数据集时创建文件夹。有关创建新数据集并进行准备的更多信息，请参阅[创建数据集](creating-data-sets.md)。有关打开现有数据集以准备数据的更多信息，请参阅[编辑数据集](edit-a-data-set.md)。

执行分析时，作者可以展开和折叠文件夹，在文件夹中搜索特定字段，并在文件夹菜单上查看您对文件夹的描述。文件夹按字母顺序在**字段**窗格的前面显示。

## 创建文件夹


使用以下过程在**字段**窗格中创建新文件夹。

**创建新文件夹**

1. 在数据准备页面的**字段**窗格中，选择三点图标，然后选择**添加到文件夹**。

   要一次选择多个字段，请在选择的同时按 Ctrl 键（Mac 上为 Command 键）。

1. 在出现的**添加到文件夹**页面上，选择**创建新文件夹**，然后输入新文件夹的名称。

1. 选择**应用**。

该文件夹显示在**字段**窗格的前面，包含您在其中选择的字段。文件夹中的字段按字母顺序显示。

## 创建子文件夹


要在**字段**窗格中进一步整理数据字段，可以在父文件夹中创建子文件夹。

**创建子文件夹**

1. 在数据准备页面的**字段**窗格中，选择文件夹中已有字段的字段菜单，然后选择**移至文件夹**。

1. 在出现的**移至文件夹**页面上，选择**创建新文件夹**，然后输入新文件夹名称。

1. 选择**应用**。

子文件夹显示在字段列表前面的父文件夹内。子文件夹按字母顺序显示。

## 将字段添加到现有文件夹


使用以下过程在**字段**窗格中将字段添加到现有文件夹。

**将一个或多个字段添加到文件夹**

1. 在数据准备页面的**字段**窗格中，选择要添加到文件夹的字段。

   要一次选择多个字段，请在选择的同时按 Ctrl 键（Mac 上为 Command 键）。

1. 在字段菜单上，选择**添加到文件夹**。

1. 在出现的**添加到文件夹**页面上，为**现有文件夹**选择一个文件夹。

1. 选择**应用**。

一个或多个字段已添加到文件夹。

## 在文件夹之间移动字段


使用以下过程在**字段**窗格中的文件夹之间移动字段。

**在文件夹之间移动字段**

1. 在数据准备页面的**字段**窗格中，选择要移动到另一个文件夹的字段。

   要一次选择多个字段，请在选择的同时按 Ctrl 键（Mac 上为 Command 键）。

1. 在字段菜单上，选择**移至文件夹**。

1. 在出现的**移至文件夹**页面上，为**现有文件夹**选择一个文件夹。

1. 选择**应用**。

## 从文件夹中删除字段


使用以下过程在**字段**窗格中的文件夹中删除字段。从文件夹中删除字段并不会删除该字段。

**从文件夹中删除字段**

1. 在数据准备页面的**字段**窗格中，选择要删除的字段。

1. 在字段菜单上，选择**从文件夹中删除**。

您选择的字段将从文件夹中删除，并按字母顺序放回字段列表中。

## 编辑文件夹名称并添加文件夹描述


您可以编辑文件夹的名称或添加描述，以提供有关其中数据字段的上下文。文件夹名称显示在**字段**窗格中。执行分析时，作者在**字段**窗格中选择文件夹菜单时可以阅读文件夹的描述。

**编辑文件夹名称或编辑或添加文件夹描述**

1. 在数据准备页面的**字段**窗格中，选择要编辑的文件夹的文件夹菜单，然后选择**编辑名称和描述**。

1. 在显示的**编辑文件夹**页面上，执行以下操作：
   + 对于**名称**，输入文件夹的名称。
   + 对于**描述**，输入文件夹的描述。

1. 选择**应用**。

## 移动文件夹


您可以在**字段**窗格中将文件夹和子文件夹移动到新文件夹或现有文件夹。

**移动文件夹**

1. 在数据准备页面的**字段**窗格中，在文件夹菜单上选择**移动文件夹**。

1. 在显示的**移动文件夹**页面上，执行以下操作：
   + 选择**创建新文件夹**，然后输入文件夹的名称。
   + 对于**现有文件夹**，选择一个文件夹。

1. 选择**应用**。

该文件夹出现在您在**字段**窗格中选择的文件夹中。

## 从字段窗格中删除文件夹


使用以下过程从**字段**窗格删除文件夹。

**删除文件夹**

1. 在数据准备页面的**字段**窗格中，在文件夹菜单上选择**删除文件夹**。

1. 在显示的**是否删除文件夹？**页面中，选择**删除**。

该文件夹已从**字段**窗格中删除。文件夹中的任何字段都会按字母顺序放回字段列表中。删除文件夹不会将字段排除在视图之外，也不会从数据集中删除字段。

# 映射和联接字段


在 Quick Sight 中同时使用不同的数据集时，可以简化数据准备阶段映射字段或联接表格的过程。您应该已确认字段具有正确的数据类型和相应的字段名称。不过，如果您已知道将要一起使用的数据集，您可以执行一些额外的步骤以简化后面的工作。

## 映射字段


Quick Sight 可以在同一分析中的数据集之间自动映射字段。以下提示有助于让 Quick Sight 更轻松地在数据集之间自动映射字段，例如，如果您要跨数据集创建筛选操作：
+ 匹配的字段名称 – 字段名称必须完全匹配，大小写、空格或标点符号要完全相同。您可以重命名描述相同数据的字段，以便自动映射是准确的。
+ 匹配的数据类型 – 字段必须具有相同的数据类型才能自动进行映射。您可以在准备数据时更改数据类型。在该步骤中，您还可以确定是否需要筛选出任何具有不正确数据类型的数据。
+ 使用计算字段 – 您可以使用计算字段创建一个匹配字段，并为其指定正确的名称和数据类型以自动进行映射。

**注意**  
在具有自动映射后，您可以重命名字段而不会中断字段映射。不过，如果更改数据类型，则会中断映射。

有关跨数据集的筛选操作的字段映射的更多信息，请参阅[在 Amazon Quick Sight 中创建和编辑自定义操作](custom-actions.md)。

## 联接字段


您可以在不同数据源（包括文件或数据库）中的数据之间创建联接。以下提示可以帮助您更轻松地联接不同文件或数据源中的数据：
+ 类似的字段名称 – 如果可以看到应匹配的内容，则可以轻松联接字段；例如，**Order ID** 和 **order-id** 似乎应该相同。不过，如果一个是工作订单，另一个是采购订单，则这些字段可能是不同的数据。如果可能，请确保要联接的文件和表具有字段名称，从而清楚地了解它们包含的数据。
+ 匹配的数据类型 – 字段必须具有相同的数据类型，然后才能联接。确保要联接的文件和表在联接字段中具有匹配的数据类型。您不能将计算字段用于联接。此外，您也不能联接两个现有的数据集。您可以直接访问源数据以创建联接的数据集。

有关跨数据源联接数据的更多信息，请参阅[联接数据](joining-data.md)。

# 使用 Amazon Quick Sight 筛选数据
筛选数据

您可以使用筛选条件优化数据集或分析中的数据。例如，您可以对区域字段创建筛选条件，以排除数据集中特定区域的数据。您也可以向分析添加筛选条件，例如对要包含在分析中任何视觉对象中的日期范围进行筛选。

在数据集中创建筛选条件时，该筛选条件将应用于整个数据集。根据该数据集创建的任何分析和后续控制面板都包含筛选条件。如果有人根据您的数据集创建了数据集，则筛选条件也位于新数据集中。

当您在分析中创建筛选条件时，该筛选条件仅适用于该分析以及您从中发布的任何控制面板。如果有人重复了您的分析，则筛选条件将保留在新分析中。在分析中，您可以将筛选范围限定为单个视觉对象、某些视觉对象、使用此数据集的所有视觉对象或所有适用的视觉对象。

此外，在分析中创建筛选条件时，可以向控制面板添加筛选条件控件。有关筛选条件控件的更多信息，请参阅 [向分析表添加筛选条件控件](filter-controls.md)。

您创建的每个筛选条件只应用到一个字段。您可以对常规和计算字段应用筛选条件。

可以将多种类型的筛选条件添加到数据集和分析中。有关您可以添加的筛选条件类型及其部分选项的更多信息，请参阅 [Amazon Quick 中的筛选器类型](filtering-types.md)。

如果创建多个筛选条件，可使用 AND 联合应用所有顶级筛选条件。如果通过将筛选条件添加到一个顶级筛选条件的方式来分组筛选条件，可使用 OR 来应用分组中的筛选条件。

Amazon Quick Sight 会将所有启用的筛选条件应用于该字段。例如，假设有一个 `state = WA` 的筛选器和一个 `sales >= 500` 的筛选器。然后，数据集或分析只包含满足这两个条件的记录。如果您禁用其中之一，则只应用一个筛选条件。

请注意，应用于相同字段的多个筛选条件不相互排斥。

使用以下部分来学习如何查看、添加、编辑和删除筛选条件。

**Topics**
+ [

# 查看现有筛选条件
](viewing-filters-data-prep.md)
+ [

# 添加筛选器
](add-a-filter-data-prep.md)
+ [

# 跨工作表筛选条件和控件
](cross-sheet-filters.md)
+ [

# Amazon Quick 中的筛选器类型
](filtering-types.md)
+ [

# 向分析表添加筛选条件控件
](filter-controls.md)
+ [

# 编辑筛选条件
](edit-a-filter-data-prep.md)
+ [

# 启用或禁用筛选条件
](disable-a-filter-data-prep.md)
+ [

# 删除筛选条件
](delete-a-filter-data-prep.md)

# 查看现有筛选条件


编辑数据集或打开分析时，您可以查看已创建的任何现有筛选条件。使用以下过程了解操作方法。

## 查看数据集中的筛选条件


1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 Quick 主页中，选择左侧**的数据**。

1. 在**数据集**选项卡中，选择所需的数据集，然后选择**编辑数据集**。

1. 在打开的数据准备页面上，选择左下角的**筛选条件**以展开**筛选条件**部分。

   应用于数据集的所有筛选条件都将显示在此处。如果一个字段具有多个筛选条件，系统会将它们分组到一起。它们按照创建日期顺序显示，最早创建的筛选条件位于顶部。

## 查看分析中的筛选条件


使用以下过程查看分析中的筛选条件。

**查看分析中的筛选条件**

1. 从 “快速” 主页中，选择 “**分析**”。

1. 在**分析**页面上，选择要处理的分析。

1. 在分析中，选择 “**筛**选” 图标以打开 “**筛选器**” 窗格。

   此处将显示应用于分析的所有筛选条件。

   筛选条件的范围划分方式列在每个筛选条件的底部。有关确定筛选条件范围的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

# 添加筛选器


您可以向数据集或分析中添加筛选条件。使用以下过程了解操作方法。

## 将筛选条件添加到数据集


使用以下过程将筛选条件添加到数据集中。

**将筛选条件添加到数据集**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 Quick 主页中，选择左侧**的数据**。

1. 在**数据集**选项卡中，选择所需的数据集，然后选择**编辑数据集**。

1. 在打开的数据准备页面上，选择左下角的**添加筛选条件**，然后选择要筛选的字段。

   该筛选条件已添加到**筛选条件**窗格。

1. 在窗格中选择新的筛选条件来配置筛选条件。或者，您可以选择新筛选条件右侧的三个点，然后选择**编辑**。

   根据字段的数据类型，配置筛选条件的选项会有所不同。有关您可以创建的筛选条件类型及其配置的更多信息，请参阅 [Amazon Quick 中的筛选器类型](filtering-types.md)。

1. 完成后，选择 **Apply**。
**注意**  
数据预览仅显示对前 1000 行应用组合筛选条件的结果。如果将前 1000 行全部筛选掉，则在预览中不显示任何行。即使前 1000 行之后的行未筛选掉，也会出现该结果。

## 将筛选条件添加到分析中


使用以下过程将筛选条件添加到分析中。

**将筛选条件添加到分析中**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 “快速” 主页中，选择 “**分析**”。

1. 在**分析**页面上，选择要处理的分析。

1. 在分析中，选择 “**筛**选” 图标以打开 “**筛选器**” 窗格，然后选择 “**添加**”。

1. 在窗格中选择新的筛选条件进行配置。或者，您可以选择新筛选条件右侧的三个点，然后选择**编辑**。

1. 在打开的**编辑筛选条件**窗格中，对于**应用于**，选择以下选项之一。
   + **单个视觉对象** – 筛选条件仅应用于所选项。
   + **单个工作表** - 筛选条件应用于单个工作表。
   + **跨工作表** - 筛选条件应用于数据集中的多个工作表。

   根据字段的数据类型，配置筛选条件的其余选项会有所不同。有关您可以创建的筛选条件类型及其配置的更多信息，请参阅 [Amazon Quick 中的筛选器类型](filtering-types.md)。

# 跨工作表筛选条件和控件


跨工作表筛选条件和控件是范围限于整个分析或控制面板或者分析和控制面板内的多个工作表的筛选条件。

## 筛选条件


**创建跨工作表筛选条件**

1. [添加筛选条件](https://docs.amazonaws.cn/quicksight/latest/user/add-a-filter-data-prep.html#add-a-filter-data-prep-analyses)后，请将筛选条件的范围更新为跨工作表。默认情况下，这适用于分析中的所有工作表。

1. 如果选中“**跨多个数据集应用**”复选框，则筛选条件将应用于最多 100 个不同数据集中的所有视觉对象，这些数据集适用于筛选范围内的所有工作表。

1. 如果要自定义其应用到的工作表，请选择“跨工作表”图标。然后，您可以查看当前应用筛选条件的工作表或切换自定义选择的工作表。

1. 启用 **“自定义选择工作表”** 后，您可以选择要将筛选器应用于哪些工作表。

1. 按照[编辑分析中的筛选条件](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-filter-data-prep.html#edit-a-filter-data-prep-analyses)中的步骤进行操作。更改将应用于所选所有工作表的所有筛选条件。如果筛选条件的范围限于整个分析，则这包括新添加的工作表。

**移除跨工作表筛选条件**

**Deleting**

如果没有通过这些筛选条件创建任何控件，请参阅 [Deleting filters in analyses](https://docs.amazonaws.cn/quicksight/latest/user/delete-a-filter-data-prep.html#delete-a-filter-data-prep-analyses)。

如果您创建了控件，请执行以下操作：

****

1. 按照 [Deleting filters in analyses](https://docs.amazonaws.cn/quicksight/latest/user/delete-a-filter-data-prep.html#delete-a-filter-data-prep-analyses) 中的说明进行操作。

1. 如果选择**删除筛选条件和控件**，则控件将从所有页面中删除。这可能会影响您的分析的布局。或者，您也可以单独移除这些控件。

**缩小范围**

如果要移除跨工作表筛选条件，则也可以通过更改筛选范围来执行此操作：

****

1. 按照在[分析中编辑过滤器中的](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-filter-data-prep.html#edit-a-filter-data-prep-analyses)说明进入过滤器。

1. 您可以进行的编辑之一是更改范围。您可以切换到**单个工作表**或**单个视觉对象**。您也可以从跨页面选择中移除工作表。

   或者自定义工作表选择：  
![\[这是 Quick Sight 中删除滤镜的图片。\]](http://docs.amazonaws.cn/quick/latest/userguide/images/cross-sheet-7.png)

1. 如果有控件，你会看到一个模式，警告你将从任何不再应用过滤器的表单中批量删除控件，这可能会影响你的布局。您也可以单独移除控件。有关更多信息，请参阅 [移除跨工作表控件](#cross-sheet-removing-control)。

1. 如果将控件添加到**筛选范围中所有工作表的顶部**，则当筛选范围限于整个分析时，新工作表将默认添加此新控件。

## 控件


### 创建跨工作表控件


**新的筛选条件控件**

1. 创建跨工作表筛选条件。有关更多信息，请参阅 [筛选条件](#filters)。

1. 从三点菜单中，您可以看到一个显示**添加控件**的选项。将鼠标悬停在此处，您将看到三个选项：
   + **筛选范围中所有工作表的顶部**
   + **此工作表的顶部**
   + **此工作表内**

   如果你想在工作表本身中添加多个工作表，你可以这样做。 sheet-by-sheet或者，您可以添加到顶部，然后使用每个控件上的选项**移至工作表**。有关更多信息，请参阅 [编辑跨工作表控件](#cross-sheet-controls-editing-control)。

**增加现有控件的范围**

1. 导航到分析中的现有筛选条件

1. 将此筛选条件**应用于**哪些工作表的范围更改为**跨工作表**。

1. 如果已经从筛选器中创建了一个控件，你会看到一个模态，如果你选中该复选框，它会将控件批量添加到过滤器作用域中所有工作表的顶部。如果已创建的控件位于工作表上，则这不会影响该控件的位置。

### 编辑跨工作表控件


1. 转到跨工作表控件，如果控件固定在顶部，请选择三点菜单；如果控件位于工作表上，请选择编辑铅笔图标。您将看到以下选项：
   + **转到筛选条件**（引导您进入跨工作表筛选条件供您编辑或查看）
   + **移至工作表**（将控件移至分析窗格）
   + **Reset** 
   + **刷新** 
   + **编辑** 
   + **删除** 

1. 选择**编辑**。这会在分析的右侧打开**格式控件**窗格。

1. 然后，您可以编辑您的控件。顶部标有**跨工作表设置**的部分将应用于所有控件，而此部分以外的任何设置并不适用于所有控件，仅适用于您正在编辑的特定控件。例如，**相关值**不是跨工作表控件设置。

1. 您还可以看到此控件所在的工作表以及每个工作表上控件所在的位置（顶部或工作表）。您可以通过选择 “**表格” (8)** 来执行此操作。

### 移除跨工作表控件


您可以在两个位置移除控件。首先，从控件中：

1. 转到跨工作表控件，如果控件固定在顶部，请选择三点菜单；如果控件位于工作表上，请选择编辑铅笔图标。您将看到以下选项：
   + **转到筛选条件**（引导您进入跨工作表筛选条件供您编辑或查看）
   + **移至工作表**（将控件移至分析窗格）
   + **Reset** 
   + **刷新** 
   + **编辑** 
   + **删除** 

1. 选择**移除**

其次，您可以从筛选条件中移除控件：

1. 在根据其创建跨工作表控件的跨工作表筛选条件上选择三点菜单。您将看到，现在不再存在**添加控件**选项，而是**管理控件**选项。

1. 将鼠标悬停在**管理控件**上。您将看到以下选项：
   + **移至此工作表内** 
   + **此工作表的顶部**

   这些选项仅适用于工作表上的控件，具体取决于当前控件的位置。如果您在筛选范围内的所有工作表上没有控件，则可以选择**添加到筛选范围内的所有工作表顶部**。如果您已在分析中将工作表控件添加到工作表，则此操作不会将其移动到工作表顶部。您还可以选择**从此工作表中移除**或**从所有工作表中移除**。

# Amazon Quick 中的筛选器类型
筛选类型

您可以在 Quick 中创建几种不同类型的过滤器。您创建的筛选条件类型主要取决于要筛选的字段的数据类型。

在数据集中，您可以创建以下类型的筛选条件：
+ 文本筛选条件
+ 数字筛选条件
+ 日期筛选条件

在分析中，您可以创建与在数据集中相同的筛选条件类型。还可以创建：
+ 使用 and/or 运算符将筛选器分组
+ 级联筛选条件
+ 嵌套筛选条件

关于您可以创建的每种类型的筛选条件及其部分选项，请参阅以下部分以了解更多信息。

**Topics**
+ [

# 添加文本筛选条件
](add-a-text-filter-data-prep.md)
+ [

# 添加嵌套筛选条件
](add-a-nested-filter-data-prep.md)
+ [

# 添加数字筛选条件
](add-a-numeric-filter-data-prep.md)
+ [

# 添加日期筛选条件
](add-a-date-filter2.md)
+ [

# 使用 AND 和 OR 运算符添加筛选条件（组筛选条件）
](add-a-compound-filter.md)
+ [

# 创建级联筛选条件
](use-a-cascading-filter.md)

# 添加文本筛选条件
文本筛选条件

使用文本字段添加筛选条件时，可以创建以下类型的文本筛选条件：
+ **筛选条件列表**（仅限分析）– 此选项创建了一个筛选条件，您可以使用该筛选条件选择一个或多个字段值，以便在字段中的所有可用值中包含或排除这些值。有关创建此类文本筛选条件的更多信息，请参阅 [按列表筛选文本字段值（仅限分析）](#text-filter-list)。
+ **自定义筛选条件列表** – 借助此选项，您可以输入要筛选的一个或多个字段值，以及是包含还是排除包含这些值的记录。输入的值必须和实际字段值完全匹配，才能将筛选条件应用于给定的记录。有关创建此类文本筛选条件的更多信息，请参阅 [按自定义列表筛选文本字段值](#add-text-custom-filter-list-data-prep)。
+ **自定义筛选条件** – 借助此选项，您可以输入字段值必须以某种方式匹配的单个值。您可以指定字段值必须等于、不等于、开头为、结尾为、包含或不包含您指定的值。如果选择等于比较规则，则指定值和实际字段值必须完全匹配，筛选条件才能应用于给定的记录。有关创建此类文本筛选条件的更多信息，请参阅 [筛选单个文本字段值](#add-text-filter-custom-list-data-prep)。
+ **前几项和后几项筛选条件**（仅限分析）– 可以通过此选项显示按另一字段中的值排名的某个字段的前 *n* 个或后 n 个值。例如，您可以根据收入显示排名前五的销售人员。您也可以使用参数来允许控制面板用户动态选择要显示顶部或底部的几个排名值。有关创建前几项和后几项筛选条件的更多信息，请参阅 [按前几项或后几项值筛选文本字段（仅限分析）](#add-text-filter-top-and-bottom)。

## 按列表筛选文本字段值（仅限分析）
筛选条件列表

在分析中，您可以通过从字段中所有值的列表中选择要包含或排除的值来筛选文本字段。

**通过包含和排除值来筛选文本字段**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**筛选条件列表**。

1. 对于**筛选条件**，选择**包含**或**排除**。

1. 选择要对其进行筛选的字段值。为此，请选择每个值前面的复选框。

   如果有太多值可供选择，请在核对清单上方的框中输入搜索词，然后选择**搜索**。搜索词不区分大小写，不支持通配符。系统将返回包含该搜索词的任意字段值。例如，搜索 L 将返回 al、AL、la 和 LA。

   值按字母顺序在控件中显示，除非有超过 1000 个不同的值。然后，控件改为显示搜索框。每次搜索要使用的值时，它都会启动一个新的查询。如果结果包含 1000 个以上值，则您可以使用分页滚动值。

1. 完成后，选择 **Apply**。

## 按自定义列表筛选文本字段值
自定义筛选条件列表

您可以指定要筛选的一个或多个字段值，以及是包含还是排除包含这些值的记录。指定的值和实际字段值必须完全匹配，才能将筛选条件应用于给定的记录。

**按自定义列表筛选文本字段值**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**自定义筛选条件列表**。

1. 对于**筛选条件**，选择**包含**或**排除**。

1. 对于**列表**，请在该文本框中输入一个值。该值必须与现有字段值完全匹配。

1. （可选）要添加其他值，请在文本框中输入这些值，每行输入一个。

1. 对于**空值选项**，选择**排除空值**、**包含空值**或**仅限空值**。

1. 完成后，选择 **Apply**。

## 筛选单个文本字段值
自定义筛选条件

借助**自定义筛选条件**筛选条件类型，您可以指定字段值必须等于或不等于的单个值，或者必须部分匹配。如果选择等于比较规则，则指定值和实际字段值必须完全匹配，才会对给定记录应用筛选条件。

**按单个值筛选文本字段**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**自定义筛选条件**。

1. 对于**筛选条件**，请选择下列选项之一：
   + **等于** – 选择此选项时，该字段中包含或排除的值必须与您输入的值完全匹配。
   + **不等于** – 选择此选项时，该字段中包含或排除的值必须与您输入的值完全匹配。
   + **开头为** – 选择此选项时，该字段中包含或排除的值必须以您输入的值开始。
   + **结尾为** – 选择此选项时，该字段中包含或排除的值必须以您输入的值结束。
   + **包含** – 选择此选项时，该字段中包含或排除的值必须包含您输入的整个值。
   + **不包含** – 选择此选项时，该字段中包含或排除的值必须不包含您输入的值的任何部分。
**注意**  
比较类型区分大小写。

1. 请执行以下操作之一：
   + 对于**值**，输入文本值。
   + 要使用现有参数，请选择**使用参数**，然后从列表中选择参数。

     您必须首先创建参数，然后参数才会出现在此列表中。通常，您将创建一个参数，为它添加一个控件，然后为它添加一个筛选条件。有关更多信息，请参阅 [Amazon Quick 中的参数](parameters-in-quicksight.md)。

     值按字母顺序在控件中显示，除非有超过 1000 个不同的值。然后，控件改为显示搜索框。每次搜索要使用的值时，它都会启动一个新的查询。如果结果包含 1000 个以上值，则您可以使用分页滚动值。

1. 对于**空值选项**，选择**排除空值**、**包含空值**或**仅限空值**。

1. 完成后，选择 **Apply**。

## 按前几项或后几项值筛选文本字段（仅限分析）
前几项和后几项

您可以使用 **Top and bottom filter (顶部和底部筛选条件)** 显示某个字段按另一字段中的值排在顶部或底部的 *n* 个值。例如，您可以根据收入显示排名前五的销售人员。您也可以使用参数来允许控制面板用户动态选择要显示顶部或底部的几个排名值。

**创建前几项和后几项文本筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**前几项和后几项筛选条件**。

1. 选择 **Top (顶部)** 或 **Bottom (底部)**。

1. 对于**显示前几项**整数（或**显示后几项**整数），执行以下操作之一：
   + 输入要显示的顶部和底部项的个数。
   + 要使用参数作为要显示的前几项或后几项数字，请选择**使用参数**。然后，选择一个现有整数参数。

     例如，假设您希望默认显示前三位销售人员。但是，您希望控制面板查看器能够选择是否显示前 1 到 10 位的销售人员。在这种情况下，请执行以下操作：
     + 使用默认值创建一个整数参数。
     + 要将显示的项数与参数控件链接起来，请为整数参数创建一个控件。然后使该控件成为一个滑块，步长为 1，最小值为 1，最大值为 10。
     + 要使该控件工作，请对 `Salesperson` 创建一个依据 `Weighted Revenue` 的前几项和后几项筛选条件，从而将其链接到筛选条件，启用**使用参数**，并选择整数参数。

1. 对于 **By (依据)**，选择一个字段作为排名依据。如果要显示按收入排名前五的销售人员，请选择收入字段。您也可以设置需要对该字段执行的聚合。

1. （可选）选择**决定项**，然后选择另一个字段，将一个或多个聚合添加为决定项。在本示例中，当每笔收入排名前五的销售人员返回的结果超过五个时，该方法就非常有用。如果多个销售人员的收入金额相同，就可能发生这种情况。

   要删除决定项，请使用删除图标。

1. 完成后，选择 **Apply**。

# 添加嵌套筛选条件
嵌套筛选条件

嵌套筛选器是高级筛选器，可以添加到快速分析中。嵌套筛选条件使用同一数据集中另一个字段定义的数据子集来筛选某个字段。这使得作者在数据点不满足初始条件时能够显示其他上下文数据，而无需筛选出数据。

嵌套筛选条件的功能类似于 SQL 中的相关子查询或购物篮分析。例如，假设您想对销售数据执行购物篮分析。您可以使用嵌套筛选条件来查找已购买或未购买特定产品的客户的各产品销售数量。您还可以使用嵌套筛选条件来识别未购买所选产品或仅购买一系列特定产品的客户群。

只能在分析级别添加嵌套筛选条件。您无法向数据集添加嵌套筛选条件。

使用以下步骤向快速分析添加嵌套筛选器。

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 选择**分析**，然后选择要添加嵌套筛选条件的分析。

1. 在您想要筛选的文本字段上创建一个新的筛选条件。有关创建筛选条件的更多信息，请参阅 [将筛选条件添加到分析中](add-a-filter-data-prep.md#add-a-filter-data-prep-analyses)。

1. 创建新的筛选条件后，在**筛选条件**窗格中找到新的筛选条件。选择新筛选条件旁边的省略号（三个点），然后选择**编辑筛选条件**。或者，在**筛选条件**窗格中选择筛选条件实体以打开**编辑筛选条件**窗格。

1. **编辑筛选条件**窗格随即打开。打开**筛选条件类型**下拉菜单，导航至**高级筛选条件**部分，然后选择**嵌套筛选条件**。

1. 对于**资格条件**，选择**包含**或**排除**。*资格条件*允许您对分析中的数据运行不在设置中的查询。在我们上面的销售示例中，资格条件决定筛选条件是否返回购买了特定产品的客户列表或未购买该产品的客户列表。

1. 对于**嵌套字段**，选择要用来筛选数据的文本字段。嵌套字段不能与步骤 3 中选择的主字段相同。类别字段是内部筛选条件唯一支持的字段类型。

1. 对于**嵌套筛选条件类型**，选择所需的筛选条件类型。您选择的筛选条件类型决定了嵌套筛选条件的最终配置步骤。可在下面的列表中找到可用的筛选条件类型及其配置相关信息。
   + [筛选条件列表](https://docs.amazonaws.cn/quicksuite/latest/userguide/text-filter-list)
   + [自定义筛选条件列表](https://docs.amazonaws.cn/quicksuite/latest/userguide/add-text-custom-filter-list-data-prep)
   + [自定义筛选条件](https://docs.amazonaws.cn/quicksuite/latest/userguide/add-text-filter-custom-list-data-prep)

# 添加数字筛选条件
数字筛选条件

具有小数或 int 数据类型的字段被视为数字字段。您可以通过指定比较类型 (例如 **Greater than** 或 **Between**) 以及与比较类型对应的一个或多个比较值，针对数字字段创建筛选条件。比较值必须为正整数，不能包含逗号。

您可以在数字筛选条件中使用以下比较类型：
+ Equals
+ 不等于
+ Greater than
+ 大于或等于
+ Less than
+ 小于或等于
+ 介于

**注意**  
要对数值数据使用前几项和后几项筛选条件（仅限分析），请先将字段从度量改为维度。这样会将数据转换为文本。然后就可以使用文本筛选条件。有关更多信息，请参阅 [添加文本筛选条件](add-a-text-filter-data-prep.md)。

在分析中，对于基于数据库查询的数据集，您还可以选择针对一个或多个比较值应用聚合函数，例如，**总计**或**平均值**。

您可以在数字筛选条件中使用以下聚合函数：
+ 平均值
+ 计数
+ 去重计数
+ 最大值
+ 中位数
+ 最小值
+ 百分位数
+ 标准偏差
+ 标准偏差 – 总体
+ 总和
+ 方差
+ 方差 – 总体

## 创建数字筛选条件


要创建数字字段筛选条件，请按照以下过程操作。

**创建数字字段筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. （可选）对于**聚合**，选择一个聚合。默认不应用任何聚合。此选项仅在分析中创建数字筛选条件时可用。

1. 对于**筛选条件**，选择比较类型。

1. 请执行以下操作之一：
   + 如果选择**介于**以外的比较类型，请输入一个比较值。

     如果选择 **Between (介于)** 比较类型，请在 **Minimum value (最小值)** 中输入值范围的开始值，在 **Maximum value (最大值)** 中输入值范围的结束值。
   + （仅限分析）要使用现有参数，请启用**使用参数**，然后从列表中选择参数。

     您必须首先创建参数，然后参数才会出现在此列表中。通常，您将创建一个参数，为它添加一个控件，然后为它添加一个筛选条件。有关更多信息，请参阅 [Amazon Quick 中的参数](parameters-in-quicksight.md)。值按字母顺序在控件中显示，除非有超过 1000 个不同的值。然后，控件改为显示搜索框。每次搜索要使用的值时，它都会启动一个新的查询。如果结果包含 1000 个以上值，则您可以使用分页滚动值。

1. （仅限分析）对于**空值选项**，选择**排除空值**、**包含空值**或**仅限空值**。

1. 完成后，选择 **Apply**。

# 添加日期筛选条件
日期筛选条件

通过选择要使用的筛选条件和日期值创建日期字段的筛选条件。日期筛选条件类型有三种：
+ **范围** – 基于时间范围和比较类型的一系列日期。您可以根据日期字段值是在指定日期之前还是之后或是否在日期范围内来筛选记录。您可以按以下格式输入日期值MM/DD/YYYY。可以使用以下比较类型：
  + **介于** – 在开始日期和结束日期之间
  + **晚于** – 在指定日期之后
  + **早于** – 在指定日期之前
  + **等于** – 在指定日期

  对于每种比较类型，您也可以选择相对于周期或数据集值的滚动日期。
+ **相对**（仅限分析）– 基于当前日期的一系列日期和时间元素。可以基于当前日期和选定的度量单位 (UOM) 筛选记录。日期筛选条件单位包括年、季度、月、周、日、小时和分钟。您可以排除当前时段，并为 Next N (接下来的 N 个) 筛选条件添加支持，它与 Last N (最近 N 个) 类似并具有允许锚定日期的附加功能。可以使用以下比较类型：
  + **前一项** – 上一个 UOM，例如，前一年。
  + **此项** –“此 UOM”包括选定 UOM 中的全部日期和时间，即使是将来的日期和时间。
  + **最新*或*至今** – 到当前日期为止的 UOM 或到当前时间为止的 UOM。显示的短语会适应您选择的 UOM。但是，在所有情况下，此选项会滤掉不在当前 UOM 的开头与当前时刻之间的数据。
  + **最近 *n* 项** – 指定 UOM 的最近若干数量，包括此 UOM 的全部和最近 *n* −1 个 UOM 的全部。例如，我们假定今天是 2017 年 5 月 10 日。您选择使用 *years* 作为 UOM，并将“Last *n *years”设为 3。筛选出的数据包括 2017 年的全部数据加上 2016 年和 2015 年的全部数据。如果您有当前年份 (本例中为 2017 年) 未来日期的任何数据，这些记录将包含在您的数据集中。
+ **前几项和后几项**（仅限分析） – 按另一字段排名的日期条目数。您可以根据另一字段中的值显示所选日期类型或时间 UOM 的前 *n* 个或后 n 个值。例如，您可以选择根据收入显示排名前 5 的销售日。

应用比较规则时将包含指定的日期。例如，如果您应用了 `Before 1/1/16` 筛选条件，则返回的记录将包含日期值到 1/1/16 23:59:59 的所有行。如果您不希望包含指定的日期，则可清除该选项以 **Include this date (包括此日期)**。如果要忽略时间范围，可以使用 **Exclude the last N periods (排除最近 N 个期间)** 选项来指定要筛选出的期间的数量和类型（分钟、天等）。

您还可以选择包含或排除 null 值，或只显示此字段中包含 null 值的行。如果传入空日期参数（没有默认值的参数），则在您提供值之前，它不会筛选数据。

**注意**  
如果某个列或属性没有时区信息，则客户端查询引擎会设置该日期时间数据的默认解释方式。例如，假设某列包含一个 timestamp 而不是 timestamptz，并且您与数据源位于不同时区。在这种情况下，引擎呈现时间戳的方式可能不同于您的预期。Amazon Quick 和[SPICE](spice.md)两者都使用通用协调时间 (UTC) 时间。

关于如何在数据集和分析中创建日期筛选条件，请参阅以下部分了解相关信息。

## 在数据集中创建日期筛选条件


要在数据集中创建日期字段的范围筛选条件，请按照以下过程操作。

**在数据集中创建日期字段的范围筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**条件**，选择一个比较类型：**介于**、**晚于**，或**早于**。

   要使用**介于**作为比较类型，请选择**开始日期**和**结束日期**，然后从显示的日期选择器控件中选择日期。

   您可以通过选择**包含开始日期**或**包含结束日期**，来选择是要在范围内包含开始日期和结束日期之一还是两者皆有。

   要使用**早于**或**晚于**比较规则，请输入日期，或选择日期字段以调出日期选取器控件并选择日期。您可以选择包含此日期（您选择的日期）以排除最近 N 个期间，并指定如何处理空值。

1. 对于**时间粒度**，选择**日**、**小时**、**分钟**或**秒**。

1. 完成后，选择 **Apply**。

## 在分析中创建日期筛选条件


您可以按如下所述，在分析中创建日期筛选条件。

### 在分析中创建范围日期筛选条件


要在分析中创建日期字段的范围筛选条件，请按照以下过程操作。

**在分析中创建日期字段的范围筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**日期和时间范围**。

1. 对于**条件**，选择一个比较类型：**介于**、**晚于**、**早于**或**等于**。

   要使用**介于**作为比较类型，请选择**开始日期**和**结束日期**，然后从显示的日期选择器控件中选择日期。

   您可以通过选择**包含开始日期**或**包含结束日期**，来选择是要在范围内包含开始日期和结束日期之一还是两者皆有。

   要使用**早于**、**晚于**或**等于**比较规则，请输入日期，或选择日期字段以调出日期选取器控件并选择日期。您可以选择包含此日期（您选择的日期）以排除最近 N 个期间，并指定如何处理空值。

   要为比较**设置滚动日期**，请选择**设置滚动日期**。

   在打开的**设置滚动日期**窗格中，选择**相对日期**，然后选择是要将日期设置为**今天**或是**昨天**，或者指定**筛选条件**（开始或结束）、**范围**（此项、前一项或下一项）和**周期**（年、季度、月、周或日）。

1. 对于**时间粒度**，选择**日**、**小时**、**分钟**或**秒**。

1. （可选）如果要使用现有参数而不是具体日期进行筛选，请选择**使用参数**，然后从列表中选择参数。要使用 **Before (早于)**、**After (晚于)** 或 **Equals (等于)** 比较规则，请选择一个日期参数。您可以将此日期包含在范围内。

   要使用 **Between (介于)**，请单独输入开始日期和结束日期参数。您可以在此范围中包含开始日期和/或结束日期。

   要在筛选条件中使用参数，请先创建它们。通常，您将创建一个参数，为它添加一个控件，然后为它添加一个筛选条件。有关更多信息，请参阅 [Amazon Quick 中的参数](parameters-in-quicksight.md)。

1. 对于**空值选项**，选择**排除空值**、**包含空值**或**仅限空值**。

1. 完成后，选择 **Apply**。

### 在分析中创建相对日期筛选条件


要在分析中创建日期字段的相对筛选条件，请按照以下过程操作。

**在分析中创建日期字段的相对筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**相对日期**。

1. 对于**时间粒度**，选择要据以筛选的时间粒度（日、小时、分钟）。

1. 对于**周期**，选择时间单位（年、季度、月、周、日）。

1. 对于**范围**，选择您希望筛选条件如何与时间范围相对。例如，如果您选择按月份进行报告，则选项包括上个月、本月、当月至今、最近 N 个月和接下来的 N 个月。

   如果您选择过去 N 年或接下来 N 年、季度、月、周或日，请在**数量**中输入一个数字。例如，过去 3 年、接下来 5 个季度、过去 5 日。

1. 对于**空值选项**，选择**排除空值**、**包含空值**或**仅限空值**。

1. 对于**与设置的日期相对的时间**，请选择下列选项之一：
   + **当前日期时间** – 如果选择此选项，您可以将其设置为**排除最后一个**，然后指定时段的数量和类型。
   + **参数中的日期和时间** – 如果选择此选项，您可以选择现有的日期时间参数。

1. （可选）如果要使用现有参数而不是具体日期进行筛选，请启用 **Use parameters (使用参数)**，然后从列表中选择参数。

   要在筛选条件中使用参数，请先创建它们。通常，您将创建一个参数，为它添加一个控件，然后为它添加一个筛选条件。有关更多信息，请参阅 [Amazon Quick 中的参数](parameters-in-quicksight.md)。

1. 完成后，选择 **Apply**。

### 在分析中创建前几项和后几项日期筛选条件


要在分析中创建日期字段的前几项和后几项筛选条件，请按照以下过程操作。

**在分析中创建日期字段的前几项和后几项筛选条件**

1. 使用文本字段创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 对于**筛选条件类型**，选择**前几项和后几项**。

1. 选择**前几项**或**后几项**。

1. 对于**显示**，输入要显示的前几项或后几项项数，然后选择一个时间单位（年、季度、月、周、日、小时、分钟）。

1. 对于 **By (依据)**，选择一个字段作为排名依据。

1. （可选）如果**依据**字段有重复项，可以选择添加另一个字段作为决定项。选择**决定项**，然后选择另一个字段。要删除决定项，请使用删除图标。

1. （可选）如果要使用现有参数而不是具体日期进行筛选，请选择**使用参数**，然后从列表中选择参数。

   要对 **Top and bottom (顶部和底部)** 使用参数，请选择整数参数作为要显示的顶部和底部项数。

   要在筛选条件中使用参数，请先创建它们。通常，您将创建一个参数，为它添加一个控件，然后为它添加一个筛选条件。有关更多信息，请参阅 [Amazon Quick 中的参数](parameters-in-quicksight.md)。

1. 完成后，选择 **Apply**。

# 使用 AND 和 OR 运算符添加筛选条件（组筛选条件）
筛选条件

在分析中，当您在视觉对象中添加多个筛选器时，Quick 会使用 AND 运算符来组合它们。也可以使用 OR 运算符向单个筛选条件添加筛选条件。这称为复合筛选条件或筛选条件组。

要使用 OR 运算符添加多个筛选条件，请创建筛选条件组。筛选条件分组可用于分析中所有类型的筛选条件。

当您筛选多个度量时（标有 \$1 的绿色字段），可以将筛选条件应用于该字段的集合。分组中的筛选条件可以包含聚合字段或者非聚合字段，但两者不能同时存在。

**创建筛选条件组**

1. 在分析中创建新的筛选条件。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择新的筛选条件将其展开。

1. 在展开的筛选条件中，选择底部的**添加筛选条件**，然后选择要筛选的字段。

1.  选择要筛选的条件。

   您选择的字段的数据类型决定了此处可用的选项。例如，如果您选择了数值字段，则可以指定聚合、筛选条件和值。如果您选择了文本字段，则可以选择筛选条件类型、筛选条件和值。如果您选择了日期字段，则可以指定筛选条件类型、条件和时间粒度。有关这些选项的详细信息，请参阅[Amazon Quick 中的筛选器类型](filtering-types.md)。

1.  （可选）您可以通过在底部选择再次**添加筛选条件**来向筛选条件组添加其他筛选条件。

1.  （可选）要从筛选条件组中删除筛选条件，请选择字段名称旁的垃圾桶图标。

1. 完成后，选择 **Apply**。

   筛选条件以组的形式显示在**筛选条件**窗格中。

# 创建级联筛选条件
级联筛选条件

级联任何操作（例如筛选条件）的背后思想是，层次结构较高级别中的选择会影响层次结构的较低级别。术语*级联*来源于级联瀑布从一个层流向下一层的方式。

要设置级联筛选条件，需要一个激活筛选条件的触发点和应用筛选条件的目标点。在 Quick 中，触发点和目标点包含在视觉效果中。

要创建级联筛选条件，您需要设置一个操作，而不是筛选条件。这种方法是因为您需要定义如何激活级联筛选条件、涉及哪些字段以及在某人激活筛选条件时要筛选哪些视觉对象。有关更多信息，包括 step-by-step说明，请参阅[使用自定义操作进行筛选和导航](quicksight-actions.md)。

还有两种其他方法可以跨多个视觉对象激活筛选条件：
+ **对于从控制面板上的小组件激活的筛选条件** – 该小组件称为*工作表控件*，它是一个自定义菜单项，您可以将该菜单项添加到分析或控制面板顶部。最常见的工作表控件是下拉列表，其中显示打开工作表时可供选择的选项列表。要将其中一个选项添加到分析，请创建一个参数，向该参数添加控件，然后添加一个使用该参数的筛选条件。有关更多信息，请参阅 [在 Amazon Quick 中设置参数](parameters-set-up.md)、[在 Amazon Quick 中使用带有参数的控件](parameters-controls.md) 和 [向分析表添加筛选条件控件](filter-controls.md)。
+ **对于始终应用于多个视觉对象的筛选条件** – 这是一个常规筛选条件，除了您将其作用域设置为应用于多个（或所有）视觉对象之外。这种类型的筛选条件并不真正级联，因为没有触发点。它始终筛选它被配置要筛选的所有视觉对象。要将此类筛选条件添加到分析，请创建或编辑筛选条件，然后选择其范围：**单个视觉对象**、**单个工作表**或**跨工作表**。注意**跨多个数据集应用**选项。如果选中此框，则筛选条件将应用于不同数据集中的所有视觉对象，这些数据集适用于筛选范围内的所有工作表。有关更多信息，请参阅 [筛选条件](cross-sheet-filters.md#filters)。

# 向分析表添加筛选条件控件
添加筛选条件控件

在设计分析时，可以在分析表中要筛选的视觉对象旁边添加筛选条件。当您将分析发布为控制面板时，它作为控件显示在工作表中，控制面板查看者可以使用该控件。该控件使用分析主题设置，因此看起来像是工作表的一部分。

筛选条件控件与其筛选条件共享一些设置。它们适用于同一个工作表中的一个、部分或全部对象。

通过以下部分向分析添加和自定义筛选条件控件。要了解如何添加跨工作表控件，请参阅 [控件](cross-sheet-filters.md#cross-sheet-controls)。

**Topics**
+ [

## 添加筛选条件控件
](#filter-controls-add)
+ [

## 将筛选条件控件固定到工作表的顶部
](#filter-controls-pin)
+ [

## 自定义筛选条件控件
](#filter-controls-customize)
+ [

## 级联筛选条件控件
](#cascading-controls)

## 添加筛选条件控件


要添加筛选条件控件，请按照以下过程操作。

**添加筛选条件控件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 在 Q **u** ick 主页上，选择 “分析”，然后选择要使用的分析。

1. 在分析中，选择**过滤器**。

1. 如果您还没有可用的筛选条件，请创建一个。有关创建筛选条件的更多信息，请参阅 [添加筛选器](add-a-filter-data-prep.md)。

1. 在**筛选条件**窗格中，选择要为其添加控件的筛选条件右侧的三个点，然后选择**添加到工作表**。

   筛选条件控件被添加到工作表中，通常位于底部。您可以调整其大小或将其拖动到工作表上的不同位置。您还可以自定义其显示方式以及控制面板查看者与其互动的方式。有关自定义筛选条件控件的更多信息，请参阅以下部分。

## 将筛选条件控件固定到工作表的顶部


使用以下步骤将筛选条件控件固定在工作表的顶部。

**将控件固定到工作表的顶部**

1. 在要移动的筛选条件控件上，选择铅笔图标旁的三个点，然后选择**固定到顶部**。

   筛选条件固定在工作表的顶部并处于折叠状态。您可以通过点击来展开它。

1. （可选）要取消固定控件，请将其展开并将光标悬停在工作表顶部的固定控件上方，直到出现三个点。选择三个点，然后选择**移至工作表**。

## 自定义筛选条件控件


根据字段的数据类型和筛选条件的类型，筛选条件控件具有不同的可用设置。您可以自定义它们在工作表中的显示方式以及控制面板查看者与它们互动的方式。

**自定义筛选条件控件**

1. 在工作表中选择筛选条件控件。

1. 在筛选条件控件上，选择铅笔图标。

   如果筛选条件控件固定在工作表顶部，请将其展开并将光标悬停在其上方，直到出现三个点。选择三个点，然后选择**编辑**。

1. 在打开的**设置控件格式**窗格中，执行以下操作：

   1. 对于**显示名称**，输入筛选条件控件的名称。

   1. （可选）要在筛选条件控件中隐藏显示名称，请清除**显示标题**的复选框。

   1. 对于**标题字体大小**，选择要使用的标题字体大小。选项范围从超小到超大。默认设置为中号。

其余步骤取决于控件所引用的字段类型。有关按筛选条件类型划分的选项，请参阅以下部分。

### 日期筛选条件


如果您的筛选条件控件来自日期筛选条件，请通过以下步骤自定义其余选项。

**为日期筛选条件自定义更多选项**

1. 在**格式控件**窗格中，对于**样式**，选择一下选项之一：
   + **日期选择器 – 范围** – 显示一组两个字段，用于定义时间范围。您可以输入日期或时间，也可以从日历控件中选择日期。您还可以通过在**日期格式**中输入日期令牌，来自定义日期在控件中的显示方式。有关更多信息，请参阅 [在 Quick 中自定义日期格式](format-visual-date-controls.md)。
   + **日期选择器 – 相对** – 显示诸如时间段、其与当前日期和时间的关系以及排除时间段的选项等的设置。您还可以通过在**日期格式**中输入日期令牌，来自定义日期在控件中的显示方式。有关更多信息，请参阅 [在 Quick 中自定义日期格式](format-visual-date-controls.md)。
   + **文本字段** – 显示一个框，您可以在其中输入前 *N* 个或后 N 个日期。

     默认情况下，帮助文本包含在文本字段控件中，但您可以通过清除**在控件中显示帮助文本**选项来选择将其移除。

   默认情况下，每当对控件进行更改时，都会重新加载快速视觉对象。对于日历和相对日期选择器控件，作者可以向控件添加一个**应用**按钮，该按钮会延迟视觉对象重新加载，直到用户选择**应用**。这使得用户可以一次进行多项更改，无需额外查询。可以使用**格式控制**窗格的**控制选项**部分中的**显示应用按钮**复选框来配置此设置。

1. 完成后，选择 **Apply**。

### 文本筛选条件


如果您的筛选条件控件来自类别、维度或标签等文本筛选条件，请通过以下步骤自定义其余选项。

**为文本筛选条件自定义更多选项**

1. 在**格式控件**窗格中，对于**样式**，选择一下选项之一：
   + **下拉列表** – 显示一个下拉列表，其中包含可用于选择单个值的按钮。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     您也可以选择**隐藏控件值中的全选选项**。这将删除用于选择或清除对筛选条件控件中所有值全选的选项。
   + **下拉列表 – 多选** – 显示一个下拉列表，其中包含可用于选择多个值的框。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     默认情况下，每当对控件进行更改时，都会重新加载快速视觉对象。对于多选下拉控件，作者可以向控件添加一个**应用**按钮，该按钮会延迟视觉对象重新加载，直到用户选择**应用**。这使得用户可以一次进行多项更改，无需额外查询。可以使用**格式控制**窗格的**控制选项**部分中的**显示应用按钮**复选框来配置此设置。
   + **列表** – 显示一个列表，其中包含可用于选择单个值的按钮。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     您还可以选择以下选项：
     + **控件位于工作表上时隐藏搜索栏** –隐藏筛选条件控件中的搜索栏，使用户无法搜索特定值。
     + **隐藏控件值中的全选选项** – 删除用于选择或清除对筛选条件控件中所有值全选的选项。
   + **列表 – 多选** – 显示一个列表，其中包含可用于选择多个值的框。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     您还可以选择以下选项：
     + **控件位于工作表上时隐藏搜索栏** –隐藏筛选条件控件中的搜索栏，使用户无法搜索特定值。
     + **隐藏控件值中的全选选项** – 删除用于选择或清除对筛选条件控件中所有值全选的选项。
   + **文本字段** – 显示一个文本框，您可以在其中输入单个条目。文本字段最多支持 79950 个字符。

     如果您选择此选项，则可以选择以下选项：
     + **在控件中显示帮助文本** – 移除文本字段中的帮助文本。
   + **文本字段 – 多行** – 显示一个文本框，您可以在其中输入多个条目。多行文本字段的所有条目最多支持 79950 个字符。

     如果您选择此选项，则可以选择以下选项：
     + 在**分隔值依据**中，选择要如何分隔在筛选条件控件中输入的值。您可以选择用换行符、逗号、竖线 (\$1) 或分号来分隔值。
     + **在控件中显示帮助文本** – 移除文本字段中的帮助文本。

1. 完成后，选择 **Apply**。

### 数字筛选条件


如果您的筛选条件控件来自数字筛选条件，请通过以下步骤自定义其余选项。

**为数字筛选条件自定义更多选项**

1. 在**格式控件**窗格中，对于**样式**，选择一下选项之一：
   + **下拉列表** – 显示一个可以在其中选择单个值的列表。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     您也可以选择**隐藏控件值中的全选选项**。这将删除用于选择或清除对筛选条件控件中所有值全选的选项。
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。
     + **隐藏控件值中的全选选项** – 删除用于选择或清除对筛选条件控件中所有值全选的选项。
   + **列表** – 显示一个列表，其中包含可用于选择单个值的按钮。

     选择此选项后，您可以为**值**选择以下选项：
     + **筛选条件** – 显示筛选条件中所有可用的值。
     + **特定值** – 允许您输入要显示的值，每行一个条目。

     您还可以选择以下选项：
     + **控件位于工作表上时隐藏搜索栏** –隐藏筛选条件控件中的搜索栏，使用户无法搜索特定值。
     + **隐藏控件值中的全选选项** – 删除用于选择或清除对筛选条件控件中所有值全选的选项。
   + **滑块** – 显示带有切换开关的水平条形图，您可以通过滑动该切换开关来更改值。如果您对介于最小值和最大值之间的值使用范围筛选条件，则滑块会为每个数字提供切换开关。对于滑块，您可以指定以下选项：
     + **最小值** – 在滑块左侧显示较小的值。
     + **最大值** – 在滑块右侧显示较大的值。
     + **步长大小** – 允许您设置条形图划分的增量数。
   + **文本框** – 显示一个可以在其中输入值的框。如果您选择此选项，则可以选择以下选项：
     + **在控件中显示帮助文本** – 移除文本字段中的帮助文本。

1. 完成后，选择 **Apply**。

## 级联筛选条件控件


您可以限制控件中显示的值，使它们仅显示对其他控件中选择的值有效的值。这称为级联控件。

**创建级联控件时，以下限制适用：**

1. 级联控件必须与同一数据集中的数据集列相关联。

1. 子控件必须是下拉列表或列表控件。

1. 对于参数控件，子控件必须链接到数据集列。

1. 对于筛选条件控件，子控件必须链接到筛选条件（而不是仅显示特定值）。

1. 父控件必须是下列类型之一：

   1. 字符串、整数或数字参数控件。

   1. 字符串筛选条件控件（不包括“前几项/后几项”筛选条件）。

   1. 非聚合数字筛选条件控件。

   1. 日期筛选条件控件（不包括“前几项/后几项”筛选条件）。

**创建级联控件**

1. 要创建级联控件，请选择**仅显示相关值**。请注意，此选项可能不适用于所有筛选条件控件类型。

1. 在打开的**仅显示相关值**窗格中，从可用列表中选择一个或多个控件。

1. 选择要与值匹配的字段。

1. 选择**更新**。

# 编辑筛选条件


您可以随时在数据集或分析中编辑筛选条件。

您不能更改筛选条件应用到的字段。要将筛选条件应用于其他字段，请创建新的筛选条件。

使用以下过程学习如何编辑筛选条件。

## 编辑数据集中的筛选条件


使用以下过程编辑数据集中的筛选条件。

**编辑数据集中的筛选条件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 Quick 主页中，选择左侧**的数据**。

1. 在**数据集**选项卡下，选择所需的数据集，然后选择**编辑数据集**。

1. 在打开的数据准备页面上，选择左下角的**筛选条件**。

1. 选择要编辑的筛选条件。

1. 编辑完成后，选择**应用**。

## 编辑分析中的筛选条件


使用以下过程编辑分析中的筛选条件。

**编辑分析中的筛选条件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 Quick 主页中，选择左侧的**分析**。

1. 在**分析**页面上，选择要处理的分析。

1. 在分析中，选择显示的 “**筛选器**” 图标以打开 “**筛选器**” 窗格。

1. 选择要编辑的筛选条件。

1. 编辑完成后，选择**应用**。

# 启用或禁用筛选条件


您可以使用筛选条件菜单启用或禁用数据集或分析中的筛选条件。在创建筛选条件时，该筛选条件默认处于启用状态。禁用筛选条件会将筛选条件从字段中移除，但不会从数据集或分析中删除筛选条件。禁用的筛选条件在筛选条件窗格中显示为灰色。如果要将筛选条件重新应用于字段，只需将其启用即可。

使用以下过程了解如何启用或禁用筛选条件。

## 禁用数据集中的筛选条件


使用以下过程禁用数据集中的筛选条件。

**禁用数据集中的筛选条件**

1. 从 Quick 主页中，选择左侧**的数据**。

1. 在**数据集**选项卡下，选择所需的数据集，然后选择**编辑数据集**。

1. 在打开的数据准备页面上，选择左下角的**筛选条件**。

1. 在左侧的**筛选条件**窗格中，选择要禁用的筛选条件右侧的三个点，然后选择**禁用**。要启用已禁用的筛选条件，请选择**启用**。

## 禁用分析中的筛选条件


使用以下过程禁用分析中的筛选条件。

**禁用分析中的筛选条件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 “快速” 主页中，选择 “**分析**”。

1. 在**分析**页面上，选择要处理的分析。

1. 在分析中，选择 “**筛**选” 图标以打开 “**筛选器**” 窗格。

1. 在打开的**筛选条件**窗格中，选择要禁用的筛选条件右侧的三个点，然后选择**禁用**。要启用已禁用的筛选条件，请选择**启用**。

# 删除筛选条件


您可以随时删除数据集或分析中的筛选条件。使用以下过程了解操作方法。

## 删除数据集中的筛选条件


使用以下过程删除数据集中的筛选条件。

**删除数据集中的筛选条件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 Quick 主页中，选择**数据**。

1. 在**数据集**选项卡下，选择所需的数据集，然后选择**编辑数据集**。

1. 在打开的数据准备页面上，选择左下角的**筛选条件**。

1. 选择要删除的筛选条件，然后选择**删除筛选条件**。

## 删除分析中的筛选条件


使用以下过程删除分析中的筛选条件。

**删除分析中的筛选条件**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 从 “快速” 主页中，选择 “**分析**”。

1. 在**分析**页面上，选择要处理的分析。

1. 在分析中，选择 “**筛**选” 图标以打开 “**筛选器**” 窗格。

1. 选择要删除的筛选条件，然后选择**删除筛选条件**。

# 预览数据集中的表


您可以预览数据集中每个单独的数据表。选择要预览的数据表时，该表的只读预览会出现在数据预览部分的新选项卡中。您可以一次打开多个表格预览选项卡。

您只能在数据集中预览您有权访问的表。如果表格未出现在数据准备空间的上半部分，则无法预览该表。

**数据集**选项卡包含所有转换，例如新列或筛选条件。表格预览选项卡不会显示任何转换。

**预览数据表**

1. 在 Quick 主页上，选择左侧**的数据**。

1. 在**数据**选项卡中，选择所需的数据集，然后选择**编辑数据集**。

1. 选择要预览的数据表，选择向下箭头打开菜单，然后选择**显示表预览**。

# 使用 SQL 自定义数据


当您创建数据集或准备数据用于分析时，可以在查询编辑器中自定义数据。

查询编辑器由多个组件构成，如下所示：
+ ****查询模式**** – 在左上角，您可以选择直接查询或 SPICE 查询模式：
  + **直接查询** – 直接对数据库运行 SELECT 语句
  + **SPICE** – 对以前存储在内存中的数据运行 SELECT 语句
+ ****字段**** – 使用此部分可禁用希望从最终数据集中删除的字段。您可以在此部分中添加计算字段，并使用 SageMaker AI 增强数据
+ ****查询归档**** – 使用此部分查找先前版本的 SQL 查询。
+ ****筛选条件**** – 使用此部分可添加、编辑或删除筛选条件。
+ ****Schema Explorer**** – 此部分仅在您编辑 SQL 时显示。可以使用它来浏览架构、表、字段和数据类型。
+ ****SQL 编辑器**** – 使用此工具可以编辑 SQL。SQL 编辑器，提供语法突出显示、基本语法自动完成、自动缩进和行号等功能。只能为与 SQL 兼容的数据来源中的数据集指定一个 SQL 查询。SQL 必须符合有关语法、大写、命令终止等的目标数据库要求。如果您愿意，可以改为从另一个编辑器粘贴 SQL。
+ ****数据工作区**** – 关闭 SQL 编辑器时，将在右上角显示带有网格背景的数据工作区。您可以在此处看到数据对象的图形表示形式，包括在联接编辑器中创建的查询、表、文件和联接。

  要查看每个表的详细信息，请使用数据来源选项菜单并选择**表详细信息**或**编辑 SQL 查询**。显示表名和别名、架构、数据来源名称和数据来源类型的详细信息。对于文件的上传设置，请从数据来源选项菜单中选择**配置上传设置**，以查看或更改以下设置：
  + 格式 – 文件格式、CSV、CUSTOM、CLF 等
  + 开始行 – 作为开头的行
  + 文本限定符 – 双引号或单引号
  + 标题 – 指示文件是否包含标题行
+ ****预览行**** – 未使用联接配置编辑器时，将在右下角显示采样行预览。
+ ****联接配置**编辑器** – 数据工作区中有多个数据对象时，会打开联接编辑器。要编辑联接，请选择两个表（或文件）之间的联接图标。通过使用屏幕底部的联接配置面板，选择联接类型以及要联接的字段。然后，选择**应用**以创建联接。必须先完成所有联接，然后才能保存您的工作。

要添加更多查询、表或文件，请使用工作区上方的**添加数据**选项。

## 创建基本 SQL 查询


使用以下过程，通过自定义 SQL 查询连接到数据来源。

**创建基本 SQL 查询**

1. 创建新的数据来源，并验证连接。

1. 填写连接所必需的选项，但不需要选择架构或表。

1. 选择**使用自定义 SQL**。

1. （可选）可以在 SQL 编辑器中输入查询，或者继续执行下一步以使用全屏版本。要立即输入查询，请为该查询创建一个名称。然后，键入 SQL 查询或粘贴到编辑器中。SQL 编辑器提供语法突出显示、基本语法自动完成、自动缩进和行号等功能。

   （可选）选择**确认查询**以对其进行验证，并查看直接查询、SPICE内存和 SageMaker AI 设置的设置。

1. 选择**编辑/预览数据**。此时将显示完整的查询编辑器，并且会显示 SQL 编辑器。系统将处理查询并在数据预览窗格中显示查询结果的示例。可以对 SQL 进行更改，并通过选择**应用**进行确认。完成 SQL 后，选择**关闭**以继续。

1.  在顶部区域输入数据集的名称。然后选择**保存并可视化**。

### 修改现有查询


**更新 SQL 查询**

1. 打开您希望使用的数据集。

1. 在带网格的工作区中，找到表示现有查询的方形对象。

1. 打开查询对象上的选项菜单，然后选择**编辑 SQL 查询**。如果此选项未显示在列表中，则查询对象不基于 SQL。

   要查看以前版本的查询，请打开左侧的**查询存档**。

# 添加地理空间数据


您可以在数据中标记地理字段，这样 Amazon Quick Sight 就可以将其显示在地图上。Amazon Quick Sight 可以绘制纬度和经度坐标图。它还会识别地理组件，例如，国家/地区、州或区域、县或地区、城市和邮政编码。您还可以创建可区分类似实体的地理层次结构，例如，两个州/省中的相同城市名称。

**注意**  
目前，某些 Amazon Web Services 区域国家（包括中国）不支持 Amazon Quick Sight 中的地理空间图表。我们正在努力增加对更多区域的支持。

可以使用以下过程将地理空间数据类型和层次结构添加到数据集中。

**将地理空间数据类型和层次结构添加到数据集中**

1. 在数据准备页上，使用正确的数据类型标记地理组件。

   我们可以通过多种方式来实现这一目的。一种方式是，选择 **Fields** 下面的字段，然后使用省略号图标 (**...**) 打开上下文菜单。

   接下来，选择正确的地理空间数据类型。

   也可以在包含数据示例的工作区中更改数据类型。为此，请选择在字段名称下面列出的数据类型。然后，选择要分配的数据类型。

1. 确认映射所需的所有地理空间字段标记为地理空间数据类型。您可以查找位置标记图标以检查这种情况。该图标显示在页面顶部的字段名称下面以及左侧的 **Fields** 窗格中。

   还要检查数据类型名称，例如，纬度或国家/地区。

1. (可选) 您可以为地理组件 (省/市/自治区、城市) 或纬度和经度坐标设置层次结构或分组。对于坐标，您必须向地理空间字段井添加纬度和经度。

   要创建层次结构或分组，请先选择 **Fields** 窗格中的某个字段。每个字段只能属于一个层次结构。先选择哪个字段或按什么顺序添加字段无关紧要。

   选择字段名称旁边的省略号图标 (**...**)。然后选择 **Add to a hierarchy**。

1. 在 **Add field to hierarchy** 屏幕上，选择下列选项之一：
   + 选择 **Create a new geospatial hierarchy** 以创建新的分组。
   + 选择 **Add to existing geospatial hierarchy** 以将字段添加到已存在的分组中。显示的现有层次结构仅包含具有匹配地理空间类型的层次结构。

   选择 **Add** 以确认您的选择。

1. 在 **Create hierarchy** 屏幕上，为您的层次结构命名。

   如果要创建经纬度分组，则会出现 “**创建等级**” 屏幕。根据在前面的步骤中选择了经度还是纬度，将在该屏幕上显示经度或纬度。确保在**用于纬度的字段**下方显示您的纬度字段。还要确保在**用于经度的字段**下方显示您的经度。

   对于地理组件，**Create hierarchy** 屏幕包含两个选项：
   + 如果您的数据仅包含一个国家/地区，请选择 **This hierarchy is for a single country**。从列表中选择该特定国家/地区。您的数据不需要包含层次结构的每个级别。您可以按任意顺序将字段添加到层次结构中。
   + 如果您的数据包含多个国家/地区，请选择 **This hierarchy is for multiple countries**。选择包含国家/地区名称的字段。

   对于任一层次结构类型，请选择 **Update** 以继续。

1. 继续在层次结构中添加所需数量的字段。

   您的地理空间分组将显示在 **Fields** 窗格中。

# 更改地理空间分组


您可以更改在数据集中存在的地理空间层次结构或分组。

可以使用以下过程编辑或删除地理空间层次结构。

**编辑或删除地理空间层次结构**

1. 打开数据集。在 **Fields** 窗格中，选择层次结构名称。

1. 选择省略号图标 (**...**)，然后选择以下选项之一。

   选择**删除层次结构**以从数据集中删除该层次结构。您无法撤销此操作。但是，您可以通过重新从步骤 1 开始操作来重新创建层次结构或分组。删除层次结构并不会从数据集中删除任何字段。

   选择 **Edit hierarchy** 以对该层次结构进行更改。这样做会重新打开创建屏幕，因此，您可以进行不同的选择以重新构建层次结构。

# 地理空间故障排除


使用本节了解正确处理地理空间数据的 Amazon Quick Sight 要求。如果 Amazon Quick Sight 无法将您的地理空间数据识别为地理空间，请使用此部分来帮助解决问题。确保您的数据遵循列出的准则，以便在地理空间视觉对象中使用该数据。

**注意**  
目前，某些 Amazon Web Services 区域国家（包括中国）不支持 Amazon Quick Sight 中的地理空间图表。我们正在努力增加对更多区域的支持。  
如果您所在的地理位置符合此处列出的所有指南，但仍会出现错误，请通过 Amazon Quick Sight 控制台与 Amazon Quick Sight 团队联系。

**Topics**
+ [

## 地理编码问题
](#geocoding)
+ [

## 纬度和经度的相关问题
](#latitude-and-longitude)
+ [

## 支持的行政区域和邮政编码（按国家/地区列出）
](#supported-admin-areas-postal-codes)

## 地理编码问题


Amazon Quick Sight 将地名地理编码为纬度和经度坐标。它使用这些坐标在地图上显示位置名称。Amazon Quick Sight 会跳过任何它无法进行地理编码的地方。

要使此过程正常运行，您的数据必须至少包含国家/地区。此外，父位置名称内不能有重复的位置名称。

一些问题将阻止位置名称显示在地图上。这些问题包括不支持的、模糊的或无效的位置，如下所述。

**Topics**
+ [

### 不支持的区域的相关问题
](#geospatial-unsupported-areas)
+ [

### 模糊位置的相关问题
](#geospatial-ambiguous-locations)
+ [

### 无效的地理空间数据的相关问题
](#geospatial-invalid-data)
+ [

### 地理编码中的默认国家/地区的相关问题
](#geospatial-default-country)

### 不支持的区域的相关问题


要绘制不支持的位置的地图，请在数据中包含纬度和经度坐标。在地理空间字段井中使用这些坐标可使位置显示在地图上。

### 模糊位置的相关问题


地理空间数据不能包含模糊位置。例如，假设数据包含一个名为 **Springfield** 的城市，而层次结构中的下一个级别为国家/地区。由于多个州/省具有名为 **Springfield** 的城市，因此，无法将该位置地理编码为地图上的特定数据点。

为避免此问题，您可以添加足够的地理数据来指示哪个位置应显示在地图上。例如，您可以在数据及其层次结构内添加一个省/市/自治区级别。您也可以添加纬度和经度。

### 无效的地理空间数据的相关问题


当位置名称 (如城市) 在不正确的父位置名称 (如省/市/自治区) 下列出时，将出现无效的地理空间数据。此问题可能是简单的拼写错误或数据输入错误。

**注意**  
Amazon Quick Sight 不支持区域（例如西海岸或南海岸）作为地理空间数据。但是，您可以使用区域作为视觉对象中的筛选条件。

### 地理编码中的默认国家/地区的相关问题


确保您使用的是正确的默认国家/地区。

每个层次结构的默认值都基于您在创建层次结构时选择的国家/地区或国家/地区字段。

要更改此默认值，您可以返回 **Create hierarchy** 屏幕。然后，编辑或创建一个层次结构，再选择不同的国家/地区。

如果您未创建层次结构，您的默认国家/地区将基于您的 Amazon Web Services 区域。有关详细信息，请参见下表。


| Region | 默认国家/地区 | 
| --- | --- | 
| 美国西部（俄勒冈州）区域 美国东部（俄亥俄州）区域 美国东部（弗吉尼亚州北部）区域 | 美国 | 
| 亚太地区（新加坡） | 新加坡 | 
| 亚太地区（悉尼） | 澳大利亚 | 
| 欧洲地区（爱尔兰）区域 | 爱尔兰 | 

## 纬度和经度的相关问题


Amazon Quick Sight 使用背景中的纬度和经度坐标在地图上查找地名。但您也可以使用坐标创建地图，而不使用位置名称。此方法还适用于不支持的位置名称。

经度和纬度值必须为数字。例如，所指示的地图点与 Amazon Q **28.5383355 -81.3792365** uick Sight 兼容。但是，**28° 32' 18.0096'' N 81° 22' 45.2424'' W** 不兼容。

**Topics**
+ [

### 纬度和经度坐标的有效范围
](#valid-ranges-for-coordinates)
+ [

### 使用采用度、分、秒（DMS）格式表示的坐标
](#using-coordinates-in-dms-format)

### 纬度和经度坐标的有效范围
有效范围

Amazon Quick Sight 支持特定范围内的纬度和经度坐标。




| 坐标 | 有效范围 | 
| --- | --- | 
| 纬度 | 介于 -90 和 90 之间 | 
| 经度 | 介于 -180 和 180 之间 | 

Amazon Quick Sight 会跳过这些范围之外的所有数据。 Out-of-range无法在地图图表上映射点。

### 使用采用度、分、秒（DMS）格式表示的坐标
使用 DMS 坐标

您可以在公式中使用计算字段以通过字符串创建数字经度和纬度。使用本节查找在 Amazon Quick Sight 中创建计算字段的不同方法，将 GPS 纬度和经度解析为数字纬度和经度。

以下示例将经度和纬度从单独的字符转换为数字格式。例如，假设您将空格作为分隔符以分析 **51° 30' 26.4636'' N 0° 7' 39.9288'' W**。在这种情况下，您可以使用类似于以下示例的内容将生成的字段转换为数字纬度和经度。

在该示例中，秒后跟两个单引号。如果您的数据有一个双引号，则可使用 `strlen(LatSec)-1)` 而非 `strlen(LatSec)-2)`。

```
/*Latitude*/
        ifelse(
        LatDir = "N",
        parseInt(split(LatDeg, "°", 1)) +
            (parseDecimal(split(LatMin, "'", 1) ) /60) +
            (parseDecimal((substring(LatSec, 1, strlen(LatSec)-2) ) ) /3600),
        (parseInt(split(LatDeg, "°", 1)) +
            (parseDecimal(split(LatMin, "'", 1) ) /60) +
            (parseDecimal((substring(LatSec, 1, strlen(LatSec)-2) ) ) /3600)) * -1
        )

/*Longitude*/
        ifelse(
        LongDir = "E",
        parseInt(split(LongDeg, "°", 1)) +
            (parseDecimal(split(LongMin, "'", 1) ) /60) +
            (parseDecimal((substring(LongSec, 1, strlen(LongSec)-2) ) ) /3600),
        (parseInt(split(LongDeg, "°", 1)) +
            (parseDecimal(split(LongMin, "'", 1) ) /60) +
            (parseDecimal((substring(LongSec, 1, strlen(LongSec)-2) ) ) /3600)) * -1
        )
```



如果您的数据不包含度、分钟和秒符号，则公式如下所示。

```
/*Latitude*/
    ifelse(
        LatDir = "N",
        (LatDeg + (LatMin / 60) + (LatSec / 3600)),
        (LatDeg + (LatMin / 60) + (LatSec / 3600)) * -1
    )

/*Longitude*/
    ifelse(
        LongDir = "E",
        (LongDeg + (LongMin / 60) + (LongSec / 3600)),
        (LongDeg + (LongMin / 60) + (LongSec / 3600)) * -1
    )
```



以下示例将 **53°21'N 06°15'W** 转换为数字格式。不过，如果不使用秒，则无法准确映射此位置。

```
/*Latitude*/
ifelse(
    right(Latitude, 1) = "N",
    (parseInt(split(Latitude, '°', 1)) +
        parseDecimal(substring(Latitude, (locate(Latitude, '°',3)+1),  2) ) / 60) ,
    (parseInt(split(Latitude, '°', 1)) +
        parseDecimal(substring(Latitude, (locate(Latitude, '°',3)+1),  2) ) / 60) * -1
)

/*Longitude*/
ifelse(
    right(Longitude, 1) = "E",
    (parseInt(split(Longitude, '°', 1)) +
        parseDecimal(substring(Longitude, (locate(Longitude, '°',3)+1),  2) ) / 60) ,
    (parseInt(split(Longitude, '°', 1)) +
        parseDecimal(substring(Longitude, (locate(Longitude, '°',3)+1),  2) ) / 60) * -1
)
```



GPS 经度和纬度的格式可能会有所不同，因此，请自定义公式以便与您的数据相匹配。有关更多信息，请参阅下列内容：
+ LatLong.net 上的@@ [度分秒到十进制度](https://www.latlong.net/degrees-minutes-seconds-to-decimal-degrees)
+ 在堆栈@@ [Degrees/Minutes/Seconds溢出时使用 SQL 转换为小数](https://stackoverflow.com/questions/12186110/converts-degrees-minutes-seconds-to-decimals-using-sql)
+ Wikipedia 上的[地理坐标转换](https://en.wikipedia.org/wiki/Geographic_coordinate_conversion)

## 支持的行政区域和邮政编码（按国家/地区列出）


下面是按国家/地区列出的支持的行政区域列表。


**支持的行政区域**  

| 国家/地区名称 | 国家/地区代码 | Country（国家/地区） | 州 | County | 城市 | 
| --- | --- | --- | --- | --- | --- | 
|  阿鲁巴岛  |  ABW  |  国家/地区  |  Regions  |  Zones  |    | 
|  阿富汗  |  AFG  |  国家/地区  |  Wilayat  |  Wuleswali  |  Localities/Urban Areas  | 
|  安哥拉  |  AGO  |  国家/地区  |  Provinces/Províncias  |  Municipios  |  Localities/Urban Areas  | 
|  安圭拉岛  |  AIA  |  国家/地区  |  Parishes  |    |    | 
|  阿尔巴尼亚  |  ALB  |  国家/地区  |  Qarqe/Qark  |  Communes/Bashki  |  新区域 si/Localities/Urban  | 
|  安道尔  |  AND  |  国家/地区  |  Parishes/Parròquies  |  Localities/Urban Areas  |    | 
|  阿拉伯联合酋长国  |  ARE  |  国家/地区  |  Emirates  |  Municipalities  |  Cities/Localities/Urban区域  | 
|  阿根廷  |  ARG  |  国家/地区  |  Provinces/Provincias  |  Departamentos/Departments  |  Comunas/Barrios  | 
|  亚美尼亚  |  ARM  |  国家/地区  |  Provinces/Marzpet  |    |  Localities/Urban Areas  | 
|  美属萨摩亚  |  ASM  |  国家/地区  |  Districts  |  Counties  |  Villages  | 
|  南极洲  |  ATA  |  国家/地区  |    |    |    | 
|  法属南部领地  |  ATF  |  国家/地区  |  Districts  |    |    | 
|  安提瓜和巴布达  |  ATG  |  国家/地区  |  Parishes  |    |  Localities/Urban Areas  | 
|  澳大利亚  |  AUS  |  国家/地区  |  状态  |  Local Government Areas  |  Suburbs/Urban Centers  | 
|  奥地利  |  AUT  |  国家/地区  |  States/Bundesländer  |  Districts/Bezirke  |  Municipalities/Gemeinden/Urban Areas/Stadtteil  | 
|  阿塞拜疆  |  AZE  |  国家/地区  |  Regions/Iqtisadi Rayonlar  |  Districts/Rayonlar  |  Localities/Urban Areas  | 
|  布隆迪  |  BDI  |  国家/地区  |  Provinces  |  Communes  |  Localities/Urban Areas  | 
|  比利时  |  BEL  |  国家/地区  |  Regions/Gewest  |  Provinces/Provincie  |  Districts/Arrondissements/Municipalities/Communes  | 
|  贝宁  |  BEN  |  国家/地区  |  Departments  |  Communes  |  Localities/Urban Areas  | 
|  博内尔岛、圣尤斯塔修斯和萨巴岛  |  BES  |  国家/地区  |  Municipalities  |    |  Localities/Urban Areas  | 
|  布基纳法索  |  BFA  |  国家/地区  |  Regions  |  Provinces  |  Communes/Localities/Urban区域  | 
|  孟加拉国  |  BGD  |  国家/地区  |  Divisions/Bibhag  |  Districts/Zila  |  Subdistricts/Upzila/Localities/Urban区域  | 
|  保加利亚  |  BGR  |  国家/地区  |  Oblasts  |  Obshtina  |  Localities/Urban Areas  | 
|  巴林  |  BHR  |  国家/地区  |  Governorates  |  Constituencies  |  Localities  | 
|  巴哈马  |  BHS  |  国家/地区  |  Island Groups  |  Districts  |  Towns  | 
|  波斯尼亚和黑塞哥维那  |  BIH  |  国家/地区  |  Federation/Republika  |  Kanton  |  Ops Areas tina/Localities/Urban  | 
|  圣巴泰勒米  |  BLM  |  国家/地区  |    |    |  Localities/Urban Areas  | 
|  白俄罗斯  |  BLR  |  国家/地区  |  Voblast  |  Rayon  |  Selsoviet/Localities/Urban区域  | 
|  伯利兹  |  BLZ  |  国家/地区  |  Districts  |  Constituencies  |  Localities/Urban Areas  | 
|  百慕大  |  BMU  |  国家/地区  |  Parishes  |    |  Localities/Urban Areas  | 
|  玻利维亚  |  BOL  |  国家/地区  |  Provinces/Provincias  |  Departamentos/Departments  |  Municipalities/Municipios/Localities/Urban区域  | 
|  巴西  |  BRA  |  国家/地区  |  Provinces/States/Unidades  |  Municipalities/Municipios  |  Localities/Urban Areas  | 
|  巴巴多斯  |  BRB  |  国家/地区  |  Parishes  |    |  Localities/Urban Areas  | 
|  文莱  |  BRN  |  国家/地区  |  Districts/Dawaïr  |  Subdistricts/Mukim  |  Villages/Kampung/Localities/Urban区域  | 
|  不丹  |  BTN  |  国家/地区  |  Districts/Dzongkhag  |    |  Localities/Urban Areas  | 
|  布韦岛  |  BVT  |  国家/地区  |    |    |    | 
|  博茨瓦纳  |  BWA  |  国家/地区  |  Districts  |  Subdistricts  |  Localities/Urban Areas  | 
|  中非共和国  |  CAF  |  国家/地区  |  Regions  |  Prefectures  |  Sub Prefectures/Communes  | 
|  加拿大  |  CAN  |  国家/地区  |  Provinces/Territories  |  Census Divisions  |  人口普查Subdivisions/Localities/Urban区域  | 
|  瑞士  |  CHE  |  国家/地区  |  Cantons/Kanton/Cantone/Chantun  |  District/Bezirk/Distretto/Circul  |  “Commune/Gemeinde/Comune/Cumün/Localities/Urban区域”  | 
|  智利  |  CHL  |  国家/地区  |  Regions/Regiones  |  Province/Provincias  |  Communes/Comunas/Localities/Urban区域  | 
|  中国人民共和国  |  CHN  |  国家/地区  |  Provinces  |  Prefectures  |  Cities/Counties  | 
|  科特迪瓦  |  CIV  |  国家/地区  |  Districts  |  Regions  |  Departments/Sub Prefectures  | 
|  喀麦隆  |  CMR  |  国家/地区  |  Provinces/Regions  |  Departments  |  Arrondissements/Cities  | 
|  刚果民主共和国  |  COD  |  国家/地区  |  Provinces  |  Districts  |  Localities/Urban Areas  | 
|  刚果共和国  |  COG  |  国家/地区  |  Departments  |    |  Communes/Arrondissements  | 
|  库克群岛  |  COK  |  国家/地区  |  Island Councils  |    |    | 
|  哥伦比亚  |  COL  |  国家/地区  |  Departmentos  |  Municipios  |  Localities/Urban Areas  | 
|  科摩罗  |  COM  |  国家/地区  |  Autonomous Islands/îles Autonomes  |    |  Villes/Villages  | 
|  克利珀顿岛  |  CPT  |  国家/地区  |    |    |    | 
|  佛得角  |  CPV  |  国家/地区  |  Ilhas  |  Concelhos  |  Localities/Urban Areas  | 
|  哥斯达黎加  |  CRI  |  国家/地区  |  Provincias  |  Cantons  |  Distritos/Localities/Urban区域  | 
|  古巴  |  CUB  |  国家/地区  |  Provincias  |  Municipios  |  Localities/Urban Areas  | 
|  库拉索岛  |  CUW  |  国家/地区  |    |    |  Localities/Urban Areas  | 
|  开曼群岛  |  CYM  |  国家/地区  |  Districts  |    |    | 
|  塞浦路斯  |  CYP  |  国家/地区  |  Districts/Eparchies  |  Municipalities/Dimos  |  Localities/Urban Areas/Sinikia  | 
|  捷克共和国  |  CZE  |  国家/地区  |  Regions/Kraj  |  Municipalities/Orp  |  Obec/Mesto  | 
|  德国  |  DEU  |  国家/地区  |  Bundesland/States  |  Kreis/Districts  |  Gemeinde/Municipalities/Stadtteil/Localities/Urban区域  | 
|  吉布提  |  DJI  |  国家/地区  |  Regions  |    |  Localities/Urban Areas  | 
|  多米尼加  |  DMA  |  国家/地区  |  Parishes  |    |  Localities/Urban Areas  | 
|  丹麦  |  DNK  |  国家/地区  |  Regions  |  Provinces  |  Municipalities/Localities/Urban区域  | 
|  多米尼加共和国  |  DOM  |  国家/地区  |  Regions/Regiones  |  Provinces/Provincias  |  Municipalities/Municipios/Localities/Urban区域  | 
|  阿尔及利亚  |  DZA  |  国家/地区  |  Provinces/Wilayas  |  Districts  |  Municipalities/Baladiyas/Localities/Urban区域  | 
|  厄瓜多尔  |  ECU  |  国家/地区  |  Provinces  |  Cantons  |  Parishes/Localities/Urban区域  | 
|  埃及  |  EGY  |  国家/地区  |  Governorates/Muhafazat  |  Municipal Divisions/Markaz  |  Towns/Cities/Sub市政部门  | 
|  厄立特里亚  |  ERI  |  国家/地区  |  Regions/Zoba  |  Districts/Subzobas  |  Localities/Urban Areas  | 
|  西班牙  |  ESP  |  国家/地区  |  自主自动 Communities/Comunidados 驾驶  |  Provincias  |  Municipios/Localities/Urban区域  | 
|  爱沙尼亚  |  EST  |  国家/地区  |  Maakond  |  Omavalitsus/Linn/Vald  |  Ku 区域 la/Localities/Urban  | 
|  埃塞俄比亚  |  ETH  |  国家/地区  |  Regions/Kililoch  |  Zones/Zonouch  |  Localities/Urban Areas  | 
|  芬兰  |  FIN  |  国家/地区  |  Regions/Maakunta  |  Sub-Regions/Seutukunta  |  Municipalities/Kunta/Localities/Urban区域  | 
|  斐济  |  FJI  |  国家/地区  |  Divisions  |  Provinces  |  Districts/Villages  | 
|  福克兰群岛  |  FLK  |  国家/地区  |    |    |    | 
|  法国  |  FRA  |  国家/地区  |  Regions  |  Départements  |  Arrondissements/Cantons  | 
|  法罗群岛  |  FRO  |  国家/地区  |  Regions/Syslur  |  Municipalities/Kommunur  |  Localities/Urban Areas  | 
|  Federated States of Micronesia  |  FSM  |  国家/地区  |  状态  |    |    | 
|  加蓬  |  GAB  |  国家/地区  |  Provinces  |  Departments  |  Localities/Urban Areas  | 
|  英国  |  GBR  |  国家/地区  |  Nations  |  Counties  |  Districts/Localities/Urban区域  | 
|  格鲁吉亚  |  GEO  |  国家/地区  |  Regions/Mkhare  |  Municipalities/Munitsipaliteti  |  Localities/Urban Areas  | 
|  加纳  |  GHA  |  国家/地区  |  Regions  |  Districts  |  Localities/Urban Areas  | 
|  直布罗陀  |  GIB  |  国家/地区  |    |    |  Localities/Urban Areas  | 
|  几内亚  |  GIN  |  国家/地区  |  Regions  |  Prefectures  |  子Prefectures/Localities/Urban区域  | 
|  瓜德罗普  |  GLP  |  国家/地区  |  Arrondissements  |  Communes  |  Localities/Urban Areas  | 
|  冈比亚  |  GMB  |  国家/地区  |  Regions  |  Districts  |  Localities/Urban Areas  | 
|  Guinea Bissau  |  GNB  |  国家/地区  |  Regions  |  Sectors  |  Localities/Urban Areas  | 
|  赤道几内亚  |  GNQ  |  国家/地区  |  Regions  |  Provincias  |  Distritos/Localities/Urban区域  | 
|  希腊  |  GRC  |  国家/地区  |  Regions/Periphenies  |  Regional Units Peri Enotities  |  Municipalities/Domoi/Localities/Urban区域  | 
|  格林纳达  |  GRD  |  国家/地区  |  状态  |  Parishes/Dependencies  |  Localities/Urban Areas  | 
|  格陵兰  |  GRL  |  国家/地区  |  Municipalities/Kommunia  |    |    | 
|  危地马拉  |  GTM  |  国家/地区  |  Departments/Departamentos  |  Municipalities/Municipios  |  Localities/Urban Areas  | 
|  法属圭亚那  |  GUF  |  国家/地区  |  Arrondissements  |  Communes  |  Localities/Urban Areas  | 
|  关岛  |    |  Country = USA  |  状态  |  Districts  |    | 
|  圭亚那  |  GUY  |  国家/地区  |  Regions  |  Neighborhood Councils  |  Localities/Urban Areas  | 
|  Hong Kong  |  HKG  |  国家/地区  |  Districts  |  Subdistricts  |  Localities/Urban Areas  | 
|  赫德和 McDonald 岛屿  |  HMD  |  国家/地区  |    |    |    | 
|  洪都拉斯  |  HND  |  国家/地区  |  Departments/Departamentos  |  Municipalities/Municipios  |  Localities/Urban Areas  | 
|  克罗地亚  |  HRV  |  国家/地区  |  Counties  |  Municipalities  |  Localities/Urban Areas  | 
|  海地  |  HTI  |  国家/地区  |  Departments/Départements  |  Districts/Arrondissements  |  Communes/Localities/Urban区域  | 
|  匈牙利  |  HUN  |  国家/地区  |  Regiok  |  Megyék  |  Járások/Városok  | 
|  印度尼西亚  |  IDN  |  国家/地区  |  Provinces/Provinsi  |  Regency/Kabupaten  |  Districts/Kecamatan/Localities/Urban区域  | 
|  印度  |  IND  |  国家/地区  |  States/Territories  |  Districts  |  Subdistricts/Towns/Localities/Urban区域  | 
|  英属印度洋领地  |  IOT  |  国家/地区  |    |    |    | 
|  爱尔兰  |  IRL  |  国家/地区  |  Regions  |  Counties  |  选举Divisions/Localities/Urban区  | 
|  伊朗  |  IRN  |  国家/地区  |  Provinces/Ostanha  |  Counties/Shahrestan  |  Localities/Dehestân  | 
|  伊拉克  |  IRQ  |  国家/地区  |  Governorates/Muhafazat  |  Districts/Qadaa/Kaza  |  Urban Areas/Localities  | 
|  Iceland  |  ISL  |  国家/地区  |  Regions/Landsvaedi  |  Municipalities/Sveitarfelog  |  Localities/Urban Areas  | 
|  以色列  |  ISR  |  国家/地区  |  Districts  |  Cities/Local Councils  |  Localities/Urban Areas  | 
|  意大利  |  ITA  |  国家/地区  |  Regiones  |  Provincias  |  Communes/Localities/Urban区域  | 
|  牙买加  |  JAM  |  国家/地区  |  Counties  |  Parishes  |  Constituencies/Localities/Urban区域  | 
|  约旦  |  JOR  |  国家/地区  |  Governorates  |  Districts  |  Subdistricts/Cities  | 
|  日本  |  JPN  |  国家/地区  |  Prefectures  |    |  Cities/Districts/Municipalities  | 
|  哈萨克  |  KAZ  |  国家/地区  |  Regions/Oblystar  |  Districts/Audandar  |  Towns/Kent/Localities/Urban区域  | 
|  肯尼亚  |  KEN  |  国家/地区  |  Counties  |  Constituencies  |  Localities/Urban Areas/Suburbs  | 
|  吉尔吉斯斯坦  |  KGZ  |  国家/地区  |  Regions/Oblasttar  |  Districts/Raions  |  Localities/Urban Areas  | 
|  柬埔寨  |  KHM  |  国家/地区  |  Provinces/Khaet  |  Districts/Srŏk  |  Communes/Khum/Localities/Urban区域  | 
|  基里巴斯  |  KIR  |  国家/地区  |  Districts  |  Island Councils  |    | 
|  圣基茨和尼维斯  |  KNA  |  国家/地区  |  Parishes  |  状态  |  Localities/Urban Areas  | 
|  韩国  |  KOR  |  国家/地区  |  Provinces/Do  |  Districts/Si/Gun  |  Localities/Urban Areas  | 
|  科威特  |  KWT  |  国家/地区  |  Governorates/Muhafazah  |  Areas/Mintaqah  |  Cities/Communities  | 
|  老挝  |  LAO  |  国家/地区  |  Provinces/Khoueng  |  Districts/Muang  |  Localities/Urban Areas  | 
|  黎巴嫩  |  LBN  |  国家/地区  |  Governorates/Muhafazat  |  Districts/Qadaa  |  Municipalities/Localities/Urban区域  | 
|  利比里亚  |  LBR  |  国家/地区  |  Counties  |  Districts  |  Clans/Localities/Urban区域  | 
|  利比亚  |  LBY  |  国家/地区  |  Districts/Shabiya  |    |  Cities/Localities/Urban区域  | 
|  圣卢西亚岛  |  LCA  |  国家/地区  |  Districts/Quarters  |    |  Localities/Urban Areas  | 
|  列支敦士登  |  LIE  |  国家/地区  |  Districts/Bezirk  |  Municipalities/Gemeinden  |  Localities/Urban Areas  | 
|  斯里兰卡  |  LKA  |  国家/地区  |  Provinces  |  Districts  |  分区区域 Secretariats/Localities/Urban  | 
|  莱索托  |  LSO  |  国家/地区  |  Districts  |  Constituencies  |  Community Councils/Localities  | 
|  立陶宛  |  LTU  |  国家/地区  |  Apskritis  |  Savivaldybé  |  Seniunija  | 
|  卢森堡  |  LUX  |  国家/地区  |  Cantons/Kantounen/Kantone  |  Communes/Gemengen/Gemeinden  |  Localities/Ortschaft/Uertschaft/Cities  | 
|  拉脱维亚  |  LVA  |  国家/地区  |  Regions  |  Municipalities/Novadi  |  Pilsé Areas tas/Pagasti/Localities/Urban  | 
|  澳门  |  MAC  |  国家/地区  |  Parishes  |  Districts  |    | 
|  圣马丁  |  MAF  |  国家/地区  |    |    |  Localities/Urban Areas  | 
|  摩洛哥  |  MAR  |  国家/地区  |  Regions  |  Provinces/Prefectures  |  Communes/Localities/Urban区域  | 
|  摩纳哥  |  MCO  |  国家/地区  |  Communes  |  Wards/Quartiers  |    | 
|  摩尔多瓦  |  MDA  |  国家/地区  |  Raion  |  Comuna  |  Localities/Urban Areas  | 
|  马达加斯加  |  MDG  |  国家/地区  |  Regions/Faritra  |  Districts  |  Communes/Localities/Urban区域  | 
|  马尔代夫  |  MDV  |  国家/地区  |  Atolls/Cities  |  Islands  |    | 
|  墨西哥  |  MEX  |  国家/地区  |  Estados  |  Municipios/Delegaciones  |  Colonias/Localities/Urban区域  | 
|  马绍尔群岛  |  MHL  |  国家/地区  |  Municipalities  |    |    | 
|  马其顿  |  MKD  |  国家/地区  |  Statistical Regions  |  Opstina  |  Localities/Urban Areas  | 
|  Mali  |  MLI  |  国家/地区  |  Regions  |  Communes  |  Localities/Urban Areas  | 
|  马耳他  |  MLT  |  国家/地区  |  Districts  |   Councils/Kunsilli Local Lokali  |  Localities/Urban Areas  | 
|  缅甸  |  MMR  |  国家/地区  |  States/Regions/Union领土  |  Districts  |  Townships/Localities/Urban区域  | 
|  黑山共和国  |  MNE  |  国家/地区  |  Opštine/Municipalities  |    |  Localities/Urban Areas  | 
|  蒙古  |  MNG  |  国家/地区  |  Regions  |  Provinces/Aimags  |  Districts/Sums/Localities/Urban区域  | 
|  北马里亚纳群岛  |  MNP  |  国家/地区  |  Municipalities  |    |    | 
|  莫桑比克  |  MOZ  |  国家/地区  |  Provinces  |  Districts/Distritos  |  Localities/Urban Areas  | 
|  毛里塔尼亚  |  MRT  |  国家/地区  |  Regions  |  Départements  |  Localities/Urban Areas  | 
|  Montserrat  |  MSR  |  国家/地区  |  Parishes  |  Regions  |  Localities/Urban Areas  | 
|  马提尼克  |  MTQ  |  国家/地区  |  Arrondissements  |  Communes  |  Localities/Urban Areas  | 
|  毛里求斯  |  MUS  |  国家/地区  |  Islands  |  Districts  |  Wards/Localities/Urban区域  | 
|  马拉维  |  MWI  |  国家/地区  |  Regions  |  Districts  |  Localities/Urban Areas  | 
|  马来西亚  |  MYS  |  国家/地区  |  States/Negeri  |  Districts/Daïra/Daerah  |  Subdistricts/Mukim/Localities/Urban Area/BahagianKecil  | 
|  马约特岛  |  MYT  |  国家/地区  |  Communes  |    |  Villages  | 
|  纳米比亚  |  NAM  |  国家/地区  |  Provinces  |  Constituencies  |  Suburbs/Localities  | 
|  新喀里多尼亚  |  NCL  |  国家/地区  |  Provinces  |  Communes  |    | 
|  尼日尔  |  NER  |  国家/地区  |  Regions  |  Departments  |  Localities/Urban Areas  | 
|  尼日利亚  |  NGA  |  国家/地区  |  状态  |  Local Government Areas  |  Towns/Cities  | 
|  尼加拉瓜  |  NIC  |  国家/地区  |  Departments/Departamentos  |  Municipalities/Municipios  |  Localities/Urban Areas  | 
|  纽埃岛  |  NIU  |  国家/地区  |  Villages  |    |  Towns  | 
|  荷兰  |  NLD  |  国家/地区  |  Counties/Fylker  |  Districts/Okonomisk  |  Municipalities, Kommuner, Localities, or Urban Areas  | 
|  挪威  |  NOR  |  国家/地区  |  Counties/Fylker  |  Districts/Okonomisk  |  Municipalities, Kommuner, Localities, or Urban Areas  | 
|  尼泊尔  |  NPL  |  国家/地区  |  Provinces/Pradeshaharu  |  Districts/Jilla  |  Municipalities/Localities/Urban区域  | 
|  瑙鲁  |  NRU  |  国家/地区  |  Districts  |    |    | 
|  新西兰  |  NZL  |  国家/地区  |  Regions  |  Territorial Authorities  |  统计Areas/Localities/Urban区域  | 
|  阿曼  |  OMN  |  国家/地区  |  Governorates/Muhafazah  |  Provinces/Wilayat  |  Cities/Urban Areas/Communities  | 
|  巴基斯坦  |  PAK  |  国家/地区  |  Provinces  |  Districts  |  Localities/Tehsils  | 
|  巴拿马  |  PAN  |  国家/地区  |  Provinces/Provincias  |  Districts/Distrito  |  Corregimientos/Localities/Urban区域  | 
|  皮特凯恩群岛  |  PCN  |  国家/地区  |  Islands  |    |    | 
|  秘鲁  |  PER  |  国家/地区  |  Regions  |  Districts  |  Distritos/Localities/Urban区域  | 
|  菲律宾  |  PHL  |  国家/地区  |  Regions/Rehiyon  |  Provinces/Lalawigan  |  Municipalities/Munisipiyos/Cities/Lungsod  | 
|  帕劳群岛  |  PLW  |  国家/地区  |  状态  |    |    | 
|  巴布亚新几内亚  |  PNG  |  国家/地区  |  Regions  |  Provinces  |  Districts/Localities/Urban区域  | 
|  波兰  |  POL  |  国家/地区  |  Provinces/Voivodeships  |  Counties/Powiats  |  Communes/Gminas/Towns/Dzielnicas  | 
|  朝鲜  |  PRK  |  国家/地区  |  Provinces  |    |  Localities/Urban Areas  | 
|  葡萄牙  |  PRT  |  国家/地区  |  Districts/Distritos  |  Municipalities/Concelhos  |  民用Parish/Freguesias/Localities/Urban区域  | 
|  巴拉圭  |  PRY  |  国家/地区  |  Departments  |  Distritos  |  Localities/Urban Areas  | 
|  巴勒斯坦  |  PSE  |  国家/地区  |  Territories  |  Governorates/Muhafazat  |  Localities/Urban Areas  | 
|  法属玻里尼西亚  |  PYF  |  国家/地区  |  Subdivisions/Iles  |  Communes  |    | 
|  卡塔尔  |  QAT  |  国家/地区  |  Municipalities/Baladiyat  |  Zones  |  Localities/Urban Areas  | 
|  留尼汪岛  |  REU  |  国家/地区  |  Arrondissements  |  Communes  |  Localities/Urban Areas  | 
|  罗马尼亚  |  ROU  |  国家/地区  |  Regions/Judete  |  Communes  |  Towns/Oraș  | 
|  俄罗斯  |  RUS  |  国家/地区  |  Federal District/Federal'nyy Okrug  |  Oblast'  |  Rayon/Raion/Urban Area/Gorod  | 
|  卢旺达  |  RWA  |  国家/地区  |  Provinces  |  Districts  |  Sectors/Secteurs/Localities/Urban区域  | 
|  沙特阿拉伯  |  SAU  |  国家/地区  |  Regions/Manatiq  |  Governorates/Muhafazat  |  Municipalities/Amanah  | 
|  苏丹  |  SDN  |  国家/地区  |  States/Wilaya'at  |    |  Localities/Urban Areas  | 
|  塞内加尔  |  SEN  |  国家/地区  |  Regions  |  Departments  |  Arrondissements/Localities/Urban区域  | 
|  新加坡  |  SGP  |  国家/地区  |  Districts  |  Constituencies  |  Wards  | 
|  圣赫勒拿岛  |  SHN  |  国家/地区  |  Islands  |  Districts  |  Localities/Urban Areas  | 
|  所罗门群岛  |  SLB  |  国家/地区  |  Provinces  |  Constituencies  |  Wards  | 
|  塞拉利昂  |  SLE  |  国家/地区  |  Provinces  |  Districts  |  Chiefdoms/Localities/Urban区域  | 
|  萨尔瓦多  |  SLV  |  国家/地区  |  Departments/Departamentos  |  Municipalities/Municipios  |  Localities/Urban Areas  | 
|  圣马力诺  |  SMR  |  国家/地区  |  Municipalities/Castelli  |  Localities/Urban Areas  |    | 
|  索马里  |  SOM  |  国家/地区  |  Regions/Gobolada  |    |  Localities/Urban Areas  | 
|  圣皮埃尔和密克隆群岛  |  SPM  |  国家/地区  |  Communes  |    |    | 
|  塞尔维亚  |  SRB  |  国家/地区  |  Autonomna Pokrajina/Regions  |  Okrug/Districts  |  Opstina/Municipalities/Localities/Urban区域  | 
|  南苏丹  |  SSD  |  国家/地区  |  States/Wilayat  |  Counties  |  Localities/Urban Areas  | 
|  圣多美和普林西比  |  STP  |  国家/地区  |  Provinces  |  Districts  |  Localities/Urban Areas  | 
|  苏里南  |  SUR  |  国家/地区  |  Districts/Distrikt  |  Resorts  |  Localities/Urban Areas  | 
|  斯洛伐克  |  SVK  |  国家/地区  |  Regions/Kraje  |  Districts/Okresy  |  Municipalities/Obec/Mestska cast  | 
|  斯洛文尼亚  |  SVN  |  国家/地区  |  Regions/Regi  |  Upravne Enote  |  Municipalities/Obcine/Localities/Urban区域  | 
|  瑞典  |  SWE  |  国家/地区  |  Counties  |  Municipalities  |  Localities/Urban Areas  | 
|  史瓦帝尼  |  SWZ  |  国家/地区  |  Regions  |  Tinkhundla  |  Towns/Suburbs/Localities  | 
|  荷属圣马丁  |  SXM  |  国家/地区  |  Settlements  |    |    | 
|  塞舌尔  |  SYC  |  国家/地区  |  Districts  |    |  Localities/Urban Areas  | 
|  Syria  |  SYR  |  国家/地区  |  Governorates  |  Districts/Muhafazah  |  Cities/Localities/Urban区域  | 
|  特克斯和凯科斯群岛  |  TCA  |  国家/地区  |  Districts  |  Localities  |    | 
|  乍得  |  TCD  |  国家/地区  |  Regions  |  Départements  |  Arrondissements/Localities/Urban区域  | 
|  多哥  |  TGO  |  国家/地区  |  Regions/Provinces  |  Prefectures  |  Localities/Urban Areas  | 
|  泰国  |  THA  |  国家/地区  |  Provinces/Changwat  |  Districts/Amphoe  |  Subdistricts/Tambon/Localities/Urban区域  | 
|  塔吉克斯坦  |  TJK  |  国家/地区  |  Provinces/Regions  |  Districts/Raion/Rayon  |  Localities/Urban Areas  | 
|  托克劳  |  TKL  |  国家/地区  |  Atolls  |    |    | 
|  土库曼斯坦  |  TKM  |  国家/地区  |  Provinces/Welayat  |  Districts/Etraplar  |  Towns  | 
|  东帝汶  |  TLS  |  国家/地区  |  Municipalities  |  Administrative Post  |  Localities/Urban Areas  | 
|  汤加  |  TON  |  国家/地区  |  Subdivisions  |    |    | 
|  特立尼达和多巴哥  |  TTO  |  国家/地区  |  Municipalities  |    |  Localities/Urban Areas  | 
|  突尼斯  |  TUN  |  国家/地区  |  Governates/Wilayahs  |  Delegations/Mutamadiyats  |  Municipalities/Shaykhats/Localities/Urban区域  | 
|  土耳其  |  TUR  |  国家/地区  |  Provinces/Il  |  Districts/Ilce  |  都市 Areas/Belde/Subdistricts/Bucak/Neighborhoods/Mahalle  | 
|  图瓦卢  |  TUV  |  国家/地区  |  Islands  |    |    | 
|  坦桑尼亚  |  TZA  |  国家/地区  |  Provinces/Mkoa  |  Districts/Wilaya  |  Localities/Urban Areas  | 
|  乌干达  |  UGA  |  国家/地区  |  Regions  |  Districts  |  Counties/Localities/Urban区域  | 
|  乌克兰  |  UKR  |  国家/地区  |  Oblast/Mista/AvtonomnaRespublika  |  Raions  |  定居 Councils/Rural Councils/Localities/Urban区  | 
|  美国本土外小岛屿  |  UMI  |  国家/地区  |  Islands/Atolls  |    |    | 
|  乌拉圭  |  URY  |  国家/地区  |  Departments/Departamentos  |  Municipios/Municipalities/Secciones  |  Segmentos/Localities/Urban区域  | 
|  United States of America  |  USA  |  国家/地区  |  States/Territories  |  Counties  |  MCD/CCD/Post Localities/Municipalities  | 
|  乌兹别克斯坦  |  UZB  |  国家/地区  |  Regions/Viloyatlar  |  Districts/Tumanlar  |  Localities/Urban Areas  | 
|  梵蒂冈城  |  VAT  |  国家/地区  |    |    |  Localities/Urban Areas  | 
|  圣文森特和格林纳丁斯  |  VCT  |  国家/地区  |  Parishes  |  Divisions  |  Localities/Urban Areas  | 
|  委内瑞拉  |  VEN  |  国家/地区  |  States/Estados  |  Municipalities/Municipios  |  Localities/Urban Areas/Parish/Parroquias  | 
|  英属维尔京群岛  |  VGB  |  国家/地区  |  Districts  |    |    | 
|  越南  |  VNM  |  国家/地区  |  Provinces/Cities  |  Districts  |  Wards/Localities/Urban区域  | 
|  瓦努阿图  |  VUT  |  国家/地区  |  Provinces  |    |    | 
|  瓦利斯和富图纳群岛  |  WLF  |  国家/地区  |  Districts/Rayaumes  |    |    | 
|  萨摩亚群岛  |  WSM  |  国家/地区  |  Districts/Itūmālō  |  Towns  |  Localities/Urban Areas  | 
|  科索沃  |  XKS  |  国家/地区  |  Districts  |  Municipalities  |  Localities/Urban Areas  | 
|  也门  |  YEM  |  国家/地区  |  Governorates/Muhafazat  |  Districts/Muderiah  |  Localities/Urban Areas  | 
|  南非  |  ZAF  |  国家/地区  |  Provinces  |  Districts  |  Municipalities/Wards  | 
|  赞比亚  |  ZMB  |  国家/地区  |  Provinces  |  Districts  |  Suburbs/Localities  | 
|  津巴布韦  |  ZWE  |  国家/地区  |  Provinces  |  Districts/Muderiah  |  Localities/Urban Areas  | 

以下是各国家/地区支持的邮政编码格式列表，包括位数和示例邮政编码。

**注意**  
邮政编码格式不支持 PO BOX 邮政编码。印度使用的联邦属地邮政编码也不受支持。


**支持的邮政编码**  

| 国家/地区 | 邮政格式 | 示例 | 
| --- | --- | --- | 
|  阿富汗  |  4 位数  |  1001  | 
|  阿尔巴尼亚  |  4 位数  |  1001  | 
|  阿尔及利亚  |  5 位数  |  01000  | 
|  美属萨摩亚  |  5 位数  |  96799  | 
|  安道尔  |  5 位数  |  AD100  | 
|  安圭拉岛  |  6 位数  |  AI-2640  | 
|  阿根廷  |  5 位数  |  A4126  | 
|  亚美尼亚  |  2 位数  |  00  | 
|  澳大利亚  |  4 位数  |  0800  | 
|  奥地利  |  4 位数  |  1010  | 
|  阿塞拜疆  |  2 位数  |  01  | 
|  文莱达鲁萨兰国  |  6 位数  |  BA1111  | 
|  巴林  |  4 位数  |  0101  | 
|  孟加拉国  |  2 位数  |  10  | 
|  白俄罗斯  |  6 位数  |  202115  | 
|  比利时  |  4 位数  |  1000  | 
|  百慕大  |  4 位数  |  CR 01  | 
|  不丹  |  2 位数  |  11  | 
|  波斯尼亚和黑塞哥维那  |  5 位数  |  70101  | 
|  巴西  |  5 位数  |  01001  | 
|  英属印度洋领地  |  字母数字 - 5 位数  |  BBND 1  | 
|  英属维尔京群岛  |  4 位数  |  1110  | 
|  保加利亚  |  4 位数  |  1000  | 
|  佛得角  |  4 位数  |  1101  | 
|  柬埔寨  |  2 位数  |  01  | 
|  加拿大  |  3 位数  |  A0A  | 
|  开曼群岛  |  字母数字 - 7 位数  |  KY1-1000  | 
|  智利  |  3 位数  |  100  | 
|  中国  |  4 位数  |  0100  | 
|  哥伦比亚  |  4 位数  |  0500  | 
|  哥斯达黎加  |  5 位数  |  10101  | 
|  克罗地亚  |  5 位数  |  10000  | 
|  古巴  |  1 位数  |  1  | 
|  塞浦路斯  |  4 位数  |  1010  | 
|  捷克  |  5 位数  |  100 00  | 
|  刚果民主共和国  |  4 位数  |  1001  | 
|  丹麦  |  4 位数  |  1050  | 
|  多米尼加共和国  |  5 位数  |  10101  | 
|  厄瓜多尔  |  6 位数  |  010101  | 
|  埃及  |  2 位数  |  11  | 
|  萨尔瓦多  |  4 位数  |  1101  | 
|  爱沙尼亚  |  5 位数  |  10001  | 
|  福克兰群岛  |  字母数字 - 5 位数  |  FIQQ 1  | 
|  法罗群岛  |  3 位数  |  100  | 
|  芬兰  |  5 位数  |  00100  | 
|  法国  |  5 位数  |  01000  | 
|  法属圭亚那  |  5 位数  |  97300  | 
|  法属玻里尼西亚  |  5 位数  |  98701  | 
|  格鲁吉亚  |  2 位数  |  01  | 
|  德国  |  5 位数  |  01067  | 
|  加纳  |  2 位数  |  A2  | 
|  直布罗陀  |  字母数字 - 5 位数  |  GX11 1  | 
|  希腊  |  5 位数  |  104 31  | 
|  格陵兰  |  4 位数  |  3900  | 
|  瓜德罗普  |  5 位数  |  97100  | 
|  关岛  |  5 位数  |  96910  | 
|  危地马拉  |  5 位数  |  01001  | 
|  根西岛  |  字母数字 - 4 位数，5 位数  |  GY1 1、 GY10 1  | 
|  几内亚比绍  |  4 位数  |  1000  | 
|  海地  |  4 位数  |  1110  | 
|  梵蒂冈教廷  |  5 位数  |  00120  | 
|  洪都拉斯  |  2 位数  |  11  | 
|  匈牙利  |  4 位数  |  1007  | 
|  Iceland  |  3 位数  |  101  | 
|  印度  |  6 位数  |  110001  | 
|  印度尼西亚  |  5 位数  |  10110  | 
|  伊朗  |  2 位数  |  11  | 
|  伊拉克  |  2 位数  |  10  | 
|  爱尔兰  |  3 位数  |  A41  | 
|  马恩岛  |  字母数字 - 4 位数  |  IM1 1  | 
|  以色列  |  5 位数  |  10292  | 
|  意大利  |  5 位数  |  00010  | 
|  日本  |  7 位数  |  001-0010  | 
|  Jersey  |  字母数字 - 4 位数  |  JE2 3  | 
|  约旦  |  5 位数  |  11100  | 
|  哈萨克  |  4 位数  |  0100  | 
|  肯尼亚  |  1 位数  |  0  | 
|  基里巴斯  |  6 位数  |  KI0101  | 
|  科索沃  |  5 位数  |  10000  | 
|  科威特  |  2 位数  |  00  | 
|  吉尔吉斯斯坦  |  4 位数  |  7200  | 
|  老挝  |  2 位数  |  01  | 
|  拉脱维亚  |  4 位数  |  1001  | 
|  莱索托  |  1 位数  |  1  | 
|  利比里亚  |  2 位数  |  10  | 
|  列支敦士登  |  4 位数  |  9485  | 
|  立陶宛  |  5 位数  |  00100  | 
|  卢森堡  |  4 位数  |  1110  | 
|  马其顿  |  4 位数  |  1000  | 
|  马达加斯加  |  3 位数  |  101  | 
|  马拉维  |  3 位数  |  101  | 
|  马来西亚  |  5 位数  |  01000  | 
|  马尔代夫  |  2 位数  |  00  | 
|  马耳他  |  3 位数  |  ATD  | 
|  马绍尔群岛  |  3 位数  |  969  | 
|  马提尼克  |  5 位数  |  97200  | 
|  毛里求斯  |  3 位数  |  111  | 
|  马约特岛  |  5 位数  |  97600  | 
|  墨西哥  |  5 位数  |  01000  | 
|  密克罗尼西亚  |  5 位数  |  96941  | 
|  摩尔多瓦  |  4 位数  |  2001  | 
|  摩纳哥  |  5 位数  |  98000  | 
|  蒙古  |  4 位数  |  1200  | 
|  黑山共和国  |  5 位数  |  81000  | 
|  Montserrat  |  4 位数  |  1120  | 
|  摩洛哥  |  5 位数  |  10000  | 
|  莫桑比克  |  4 位数  |  1100  | 
|  缅甸  |  2 位数  |  01  | 
|  纳米比亚  |  3 位数  |  100  | 
|  尼泊尔  |  3 位数  |  101  | 
|  荷兰  |  4 位数  |  1011  | 
|  新喀里多尼亚  |  5 位数  |  98800  | 
|  新西兰  |  4 位数  |  0110  | 
|  尼加拉瓜  |  3 位数  |  110  | 
|  尼日尔  |  4 位数  |  1000  | 
|  尼日利亚  |  4 位数  |  1002  | 
|  纽埃岛  |  4 位数  |  9974  | 
|  诺福克岛  |  4 位数  |  2899  | 
|  北马里亚纳群岛  |  5 位数  |  96950  | 
|  挪威  |  4 位数  |  0010  | 
|  阿曼  |  1 位数  |  1  | 
|  巴基斯坦  |  2 位数  |  10  | 
|  帕劳群岛  |  5 位数  |  96939  | 
|  巴勒斯坦  |  4 位数  |  P104  | 
|  巴布亚新几内亚  |  3 位数  |  111  | 
|  巴拉圭  |  6 位数  |  001001  | 
|  秘鲁  |  5 位数  |  01000  | 
|  菲律宾  |  4 位数  |  1000  | 
|  皮特凯恩  |  字母数字 - 5 位数  |  PCRN 1  | 
|  波兰  |  5 位数  |  00-002  | 
|  葡萄牙  |  4 位数  |  1000  | 
|  波多黎各  |  5 位数  |  00601  | 
|  罗马尼亚  |  6 位数  |  010011  | 
|  俄罗斯  |  6 位数  |  101000  | 
|  留尼汪岛  |  5 位数  |  97400  | 
|  圣巴泰勒米  |  5 位数  |  97133  | 
|  圣赫勒拿岛、阿森松岛和特里斯坦-达库尼亚岛  |  字母数字 - 5 位数  |  ASCN 1  | 
|  圣卢西亚岛  |  7 位数  |  LC01 101  | 
|  圣马丁  |  5 位数  |  97150  | 
|  圣皮埃尔和密克隆群岛  |  5 位数  |  97500  | 
|  圣文森特和格林纳丁斯  |  4 位数  |  VC01  | 
|  萨摩亚群岛  |  2 位数  |  11  | 
|  圣马力诺  |  5 位数  |  47890  | 
|  沙特阿拉伯  |  2 位数  |  12  | 
|  塞内加尔  |  5 位数  |  10000  | 
|  塞尔维亚  |  5 位数  |  11000  | 
|  新加坡  |  6 位数  |  018906  | 
|  斯洛伐克  |  5 位数  |  010 01  | 
|  斯洛文尼亚  |  4 位数  |  1000  | 
|  南非  |  4 位数  |  0001  | 
|  南乔治亚岛和南桑威奇群岛  |  字母数字 - 5 位数  |  SIQQ 1  | 
|  韩国  |  5 位数  |  01000  | 
|  西班牙  |  5 位数  |  01001  | 
|  斯里兰卡  |  2 位数  |  00  | 
|  苏丹  |  2 位数  |  11  | 
|  斯瓦尔巴群岛和扬马延岛  |  4 位数  |  8099  | 
|  斯威士兰  |  1 位数  |  H  | 
|  瑞典  |  5 位数  |  111 15  | 
|  瑞士  |  4 位数  |  1000  | 
|  塔吉克斯坦  |  4 位数  |  7340  | 
|  坦桑尼亚联合共和国  |  3 位数  |  111  | 
|  泰国  |  5 位数  |  10100  | 
|  东帝汶  |  4 位数  |  TL10  | 
|  特立尼达和多巴哥  |  2 位数  |  10  | 
|  突尼斯  |  4 位数  |  1000  | 
|  土耳其  |  5 位数  |  01010  | 
|  土库曼斯坦  |  3 位数  |  744  | 
|  特克斯和凯科斯群岛  |  字母数字 - 5 位数  |  TKCA 1  | 
|  美属维尔京群岛  |  5 位数  |  00802  | 
|  乌克兰  |  3 位数、5 位数  |  070、01001  | 
|  英国  |  字母数字 - 2 到 5 位数  |  B1,, AL1 AB10, AB10 1  | 
|  美国  |  5 位数  |  00001  | 
|  乌拉圭  |  5 位数  |  11000  | 
|  乌兹别克斯坦  |  4 位数  |  1000  | 
|  委内瑞拉  |  4 位数  |  0000  | 
|  越南  |  5 位数  |  01106  | 
|  瓦利斯和富图纳群岛  |  5 位数  |  98600  | 
|  赞比亚  |  5 位数  |  10100  | 

# 使用不支持的日期或自定义日期


Amazon Quick Sight 原生支持有限数量的日期格式。但是，您无法始终控制提供给您的数据格式。当您的数据包含不支持的格式的日期时，您可以告诉 Amazon Quick Sight 如何解释该日期。

为此，您可以编辑数据集，并将列格式从文本或数字改为日期。在进行该更改后，将显示一个屏幕，以使您可以在其中输入格式。例如，如果您使用的是关系数据源，则可以MM-dd-yyyy 为包含 “09-19-2017” 的文本字段指定，因此将其解释为 2017-09-19T00:00:00.000 Z。如果使用非关系数据来源，您可以执行相同的操作，从数字字段或文本字段开始。

Amazon Quick Sight 仅支持关系型 (SQL) 源的最新文本。

有关支持的日期格式的更多信息，请参阅[支持的日期格式](supported-data-types-and-values.md#supported-date-formats)。

使用此程序帮助 Amazon Quick Sight 了解不同格式的日期。

1. 对于包含不支持日期格式的数据集，如下所示编辑数据。对于包含日期时间数据的列，将数据类型从文本改为日期。为此，请在数据预览中选择列名称下方的彩色数据类型图标。
**注意**  
非 Unix 纪元日期时间的整数日期无法正常工作。例如，不支持以下格式的整数：`MMddyy`、`MMddyyyy`、`ddMMyy`、`ddMMyyyy` 和 `yyMMdd`。解决方法是先将它们更改为文本格式。请确保您的所有行均包含六位数 (五位数不可以)。然后再将文本数据类型更改为日期时间。  
有关 Unix 纪元日期时间的更多信息，请参阅[epochDate](epochDate-function.md)。

   在将数据类型更改为日期时，会显示 **Edit date format** 屏幕。

1. 输入日期格式，以指示哪些部分是月份、日期、年份或时间。格式区分大小写。

1. 选择 “**验证**”，确保 Amazon Quick Sight 现在可以使用您指定的格式解释您的日期时间数据。将跳过未通过验证的行，并从数据集中忽略。

1. 若您满意所创建的结果，请选择 **Update**。否则，请选择**关闭**。

# 向 Amazon Quick Sight 数据集添加唯一密钥
向 Quick Sight 数据集添加唯一密钥

Quick 作者可以在数据准备期间为 Quick Sight 数据集配置唯一的键列。此唯一键充当数据集的全局排序键，并优化表格视觉对象的查询生成。当用户在 Quick Sight 中创建表格视觉对象并将唯一键列很好地添加到值字段时，数据将从左到右排序到唯一键列。在排序顺序中，唯一键列右侧的所有列都将被忽略。不包含唯一键的表将根据列在数据集中显示的顺序进行排序。

以下限制适用于唯一键：
+ 仅非聚合表支持唯一键。
+ 如果数据集列用于列级安全性 (CLS)，则该列也不能用作唯一键。

使用以下步骤为 Amazon Quick Sight 中的数据集指定唯一密钥。

**设置唯一键**

1. 打开 [Quick 控制台](https://quicksight.aws.amazon.com/)。

1. 选择**数据**。

1. 执行以下操作之一：

   1. 导航到要添加唯一键的数据集，选择数据集旁边的省略号（三个点），然后选择**编辑**。

   1. 选择**新建**，然后选择**数据集**。选择要添加的数据集，然后选择**编辑数据源**。有关在 Amazon Quick Sight 中创建新数据集的更多信息，请参阅[创建数据集](creating-data-sets.md)。

1. 数据集的数据准备页面打开。导航到**字段**窗格，并找到要设置为唯一键的字段。

1. 选择字段名称旁边的省略号（三个点），然后选择**设置为唯一键**。

创建唯一键后，字段旁边会出现一个钥匙图标，表明该字段现在是数据集的唯一键。当您保存并发布数据集时，唯一键配置将应用于数据集以及使用该数据集创建的所有控制面板和分析。要从数据集中移除唯一键，请导航到数据集的数据准备页面，选择唯一键字段旁边的省略号，然后选择**移除为唯一键**。从数据集中移除唯一键后，您可以指定不同的字段作为唯一键。

# 将亚马逊 A SageMaker I 模型与 Amazon Quick Sight 集成
集成 SageMaker AI 模型

**注意**  
您无需任何机器学习 (ML) 方面的技术经验即可使用 Amazon Quick Sight 中基于机器学习的功能编写分析和仪表板。

您可以使用亚马逊 A SageMaker I 机器学习模型扩充您的 Amazon Quick Enterprise 版数据。您可以对存储在从 Quick 支持的任何数据源SPICE导入的数据进行推断。有关支持的数据来源的完整列表，请参阅[支持的数据来源](supported-data-sources.md)。

将 Quick 与 SageMaker AI 模型配合使用可以节省在管理数据移动和编写代码上的时间。这些结果可用于评估模型，也可在您对结果感到满意时共享给决策者。您可以在构建模型后立即开始使用。这样做会显示数据科学家的预构建模型，并使您能够将数据科学应用于数据集。然后，您可以在预测控制面板中共享这些见解。使用 Quick 无服务器方法，流程可以无缝扩展，因此您无需担心推理或查询容量。

Amazon Quick 支持使用回归和分类算法 SageMaker 的人工智能模型。可以应用此功能来获取几乎任何业务用例的预测结果。一些示例包括预测客户流失的可能性、员工流失、对销售线索进行评分，以及评估信用风险。要使用 Quick 提供预测，输入和输出的 SageMaker AI 模型数据都必须采用表格格式。在多类别或多标签分类用例中，每个输出列必须包含单个值。Quick 不支持在一列中包含多个值。

**Topics**
+ [

## SageMaker AI 集成的工作原理
](#sagemaker-how-it-works)
+ [

## 产生的费用（集成本身无额外费用）
](#sagemaker-cost-of-use)
+ [

## 使用指南
](#sagemaker-usage-guidelines)
+ [

## 定义架构文件
](#sagemaker-schema-file)
+ [

## 向 Quick Sight 数据集添加 SageMaker AI 模型
](#sagemaker-using)
+ [

# 使用 SageMaker AI Canvas 构建预测模型
](sagemaker-canvas-integration.md)

## SageMaker AI 集成的工作原理


 一般来说，该过程的工作方式如下所示：

1. Amazon Quick 管理员添加了 Quick 访问 SageMaker 人工智能的权限。为此，请从 “**管理快速**” 页面中打开 “**安全与权限**” 设置。转到**快速访问 Amazon 服务**，然后添加 SageMaker AI。

   当您添加这些权限时，Quick 会被添加到 Amazon Identity and Access Management (IAM) 角色中，该角色提供列出您 Amazon 账户中所有 SageMaker AI 模型的访问权限。它还提供运行名称前缀为的 SageMaker AI 作业的`quicksight-auto-generated-`权限。

1. 我们建议您连接到具有推理管道的 SageMaker AI 模型，因为它会自动执行数据预处理。有关更多信息，请参阅 *SageMaker AI 开发人员指南*中的[部署推理管道](https://docs.amazonaws.cn/sagemaker/latest/dg/inference-pipelines.html)。

1. 确定要结合使用的数据和预训练模型后，模型的拥有者将创建并提供一个架构文件。这个 JSON 文件是与 SageMaker AI 签订的合同。提供了有关模型所需的字段、数据类型、列顺序、输出和设置的元数据。可选设置组件提供了要用于该作业的计算实例的实例大小和数量。

   如果您是构建该模型的数据科学家，请使用以下所述格式创建此架构文件。如果您是该模型的使用者，请从模型拥有者处获取此架构文件。

1. 在 Quick 中，首先要创建一个包含要进行预测的数据的新数据集。如果您要上传文件，则可以在上传设置屏幕上添加 SageMaker AI 模型。否则，在数据准备页面上添加该模型。

   继续操作之前，请验证数据集与模型之间的映射。

1. 将数据导入数据集后，输出字段包含从 SageMaker AI 返回的数据。您可以按照您使用其他字段的方式使用这些字段（[使用指南](#sagemaker-usage-guidelines)中所述的准则）。

   运行 SageMaker AI 集成时，Quick 会向 A SageMaker I 传递请求，要求其使用推理管道运行批量转换作业。快速入门：在您的 Amazon 账户中配置和部署所需的实例。处理完成后，将关闭并终止这些实例。计算容量仅在处理模型时产生费用。

   为了便于您识别它们，Quick 用前缀命名其所有 SageMaker AI 作业`quicksight-auto-generated-`。

1. 推理的输出存储在 SPICE 中并附加到数据集。推理完成后，您可以使用该数据集创建使用预测数据的可视化效果和控制面板。

1. 每次保存数据集时都会启动数据刷新。您可以通过刷新 SPICE 数据集手动启动数据刷新过程，也可以将其安排为定期运行。在每次数据刷新期间，系统都会自动调用 SageMaker AI 批量转换，以使用新数据更新输出字段。

   您可以使用 Amazon Quick Sight SPICE 摄取 API 操作来控制数据刷新过程。有关使用这些 API 操作的更多信息，请参阅 [Amazon Quick Sight API 参考](https://docs.amazonaws.cn/quicksight/latest/APIReference/qs-api-overview.html)。

## 产生的费用（集成本身无额外费用）


使用此功能本身不需要额外费用。您的费用包括以下内容：
+ 通过 SageMaker AI 部署模型的成本，只有在模型运行时才会产生。在创建或编辑数据集之后，保存数据集或刷新其数据将启动数据摄取过程。如果数据集包含推断字段，则此过程包括调用 SageMaker AI。费用是在您的 Quick 订阅所在的同一个 Amazon 账户中产生的。
+ 您的快速订阅费用如下：
  + 在 Quick (SPICE) 中将数据存储在内存计算引擎中的成本。如果要将新数据添加到 SPICE，则可能需要购买足够的 SPICE 容量来容纳数据。
  + 为构建数据集的作者或管理员提供快速订阅。
  + Pay-per-session 查看者（读者）访问交互式仪表板的费用。

## 使用指南


在 Amazon Quick 中，以下使用指南适用于此企业版功能：
+ 模型的处理在 SPICE 中进行。因此，它只能应用于存储在 SPICE 中的数据集。该过程目前支持每个数据集最多 5 亿行。
+ 只有 Quick 管理员或作者才能使用机器学习模型扩充数据集。只有当结果在控制面板中显示时，读者才能查看。
+ 每个数据集能且只能与一个 ML 模型结合使用。
+ 输出字段不能用于计算新字段。
+ 无法按与该模型集成的字段筛选数据集。换句话说，如果您的数据集字段当前已映射到 ML 模型，则无法对该字段进行筛选。

在 SageMaker AI 中，以下使用指南适用于您在 Amazon Quick Sight 中使用的预训练模型：
+ 创建模型时，请将其与适当 IAM 角色的 Amazon 资源名称 (ARN) 关联。 SageMaker 人工智能模型的 IAM 角色需要有权访问 Amazon Quick Sight 使用的 Amazon S3 存储桶。
+ 确保您的模型同时对输入和输出支持 .csv 文件。确保您的数据采用表格格式。
+ 提供包含该模型元数据的架构文件，包括输入和输出字段的列表。目前，您必须手动创建此架构文件。
+ 考虑完成推理所需的时间，具体取决于许多因素。其中包括模型的复杂性、数据量和定义的计算容量。完成推理可能需要几分钟到几个小时的时间。Amazon Quick Sight 将所有数据摄取和推理任务的上限限制为 10 小时。要减少执行推断所需的时间，请考虑增加实例大小或实例数。
+ 目前，您只能使用批量转换与 SageMaker AI 集成，而不能使用实时数据。您不能使用 SageMaker AI 终端节点。

## 定义架构文件


在使用带有 Quick Sight 数据的 SageMaker AI 模型之前，请创建 JSON 架构文件，其中包含 Amazon Quick Sight 处理模型所需的元数据。Amazon Quick 作者或管理员在配置数据集时上传架构文件。

架构字段定义如下。除非以下描述中特别说明，否则所有字段均为必填字段。属性区分大小写。

 *inputContentType*   
此 SageMaker AI 模型期望输入数据的内容类型。对此唯一支持的值是 `"text/csv"`。Quick Sight 不包含您添加到输入文件中的任何标题名称。

 *outputContentType*   
您要使用的 SageMaker AI 模型生成的输出的内容类型。对此唯一支持的值是 `"text/csv"`。

 *input*   
模型所需的输入数据功能列表。Quick Sight 以完全相同的顺序生成输入数据。此列表包含以下属性：  
+  *name* – 列的名称。如果可能，请将其与 QuickSight 数据集中相应列的名称相同。此属性不得超过 100 个字符。
+  *type* – 此列的数据类型。此属性采用 `"INTEGER"`、`"STRING"` 和 `"DECIMAL"` 值。
+  *nullable* –（可选）字段是否可为 null 值。默认值为 `true`。如果设置`nullable`为`false`，Quick Sight 将在调用 SageMaker AI 之前删除不包含此值的行。这样做有助于避免导致 SageMaker AI 因缺少所需数据而失败。

 *output*   
 SageMaker AI 模型生成的输出列列表。Quick Sight 期望这些字段的顺序完全相同。此列表包含以下属性：  
+  *名称* — 此名称将成为在 Quick Sight 中创建的相应新列的默认名称。您可以在 Quick Sight 中覆盖此处指定的名称。此属性不得超过 100 个字符。
+  *type* – 此列的数据类型。此属性采用 `"INTEGER"`、`"STRING"` 和 `"DECIMAL"` 值。

 *instanceTypes*   
 SageMaker AI 可以预置以运行转换作业的 ML 实例类型列表。该列表提供给 Amazon Quick 用户供其选择。此列表仅限于 SageMaker AI 支持的类型。有关支持的类型的更多信息，请参阅 *SageMaker AI 开发者指南[TransformResources](https://docs.amazonaws.cn/sagemaker/latest/dg/API_TransformResources.html)中的。*

 *defaultInstanceType*   
（可选）在 Quick Sight 的 SageMaker AI 向导中作为默认选项显示的实例类型。请将此实例类型包含在 `instanceTypes` 中。

 *instanceCount*   
（可选）实例计数定义了要让 SageMaker AI 配置多少选定实例来运行转换作业。此值必须为正整数。

 *描述*   
该字段为拥有 SageMaker AI 模型的人提供了一个与在 Quick Sight 中使用该模型的人进行通信的地方。使用此字段可提供有关成功使用此模型的提示。例如，此字段可以包含有关根据数据集的大小，从 `instanceTypes` 的列表选择有效实例类型的信息。此字段不得超过 1,000 个字符。

 *版本*   
架构的版本，例如“`1.0"`”。

以下示例显示了架构文件中 JSON 的结构。

```
{
        "inputContentType": "CSV",
        "outputContentType": "CSV",
        "input": [
            {
                "name": "buying",
                "type": "STRING"
            },
            {
                "name": "maint",
                "type": "STRING"
            },
            {
                "name": "doors",
                "type": "INTEGER"
            },
            {
                "name": "persons",
                "type": "INTEGER"
            },
            {
                "name": "lug_boot",
                "type": "STRING"
            },
            {
                "name": "safety",
                "type": "STRING"
            }
        ],
        "output": [
            {
                "name": "Acceptability",
                "type": "STRING"
            }
        ],
        "description": "Use ml.m4.xlarge instance for small datasets, and ml.m4.4xlarge for datasets over 10 GB",
        "version": "1.0",
        "instanceCount": 1,
        "instanceTypes": [
            "ml.m4.xlarge",
            "ml.m4.4xlarge"
        ],
        "defaultInstanceType": "ml.m4.xlarge"
    }
```

架构文件的结构与 SageMaker AI 提供的示例中使用的模型类型有关。

## 向 Quick Sight 数据集添加 SageMaker AI 模型


使用以下步骤，您可以向数据集添加预训练的 SageMaker AI 模型，以便可以在分析和仪表板中使用预测数据。

在开始之前，请准备以下项目：
+ 要用于构建数据集的数据。
+ 要用于扩充数据集的 SageMaker AI 模型的名称。
+ 模型的架构。此架构包括字段名称映射和数据类型。最好还能包含有关实例类型和要使用的实例数量的建议设置。

**使用 AI 扩充你的 Amazon Quick Sight SageMaker 数据集**

1. 通过选择**数据集**，然后选择**新建数据集**，从起始页创建新数据集。

   您也可以编辑现有的数据集。

1. 在数据准备屏幕 SageMaker上选择 **Augment** with。

1. 对于 **Select your model (选择您的模型)**，选择以下设置：
   + **模型**-选择用于推断字段的 SageMaker AI 模型。
   + **名称** – 为模型提供描述性名称。
   + **架构** – 上传为模型提供的 JSON 架构文件。
   + **高级设置**-根据您的数据集 QuickSight 推荐所选的默认设置。您可以使用特定的运行时设置来平衡作业的速度和成本。为此，请在 “实例类型” 中输入 SageMaker AI ML **实例类型**，在 “**计**数” 中输入 “实例数量”。

   选择**下一步**以继续。

1. 对于 **Review inputs (查看输入)**，请查看映射到数据集的字段。Quick Sight 会尝试自动将架构中的字段映射到数据集中的字段。如果映射需要调整，您可以在此处进行更改。

   选择**下一步**以继续。

1. 对于**查看输出**，请查看已添加到数据集的字段。

   选择 **Save and prepare data (保存并准备数据)** 以确认您的选择。

1. 要刷新数据，请选择数据集以查看详细信息。然后选择 **Refresh Now (立即刷新)** 手动刷新数据，或者选择 **Schedule refresh (计划刷新)** 以设置常规刷新间隔。在每次数据刷新期间，系统都会自动运行 SageMaker AI 批量转换作业，以使用新数据更新输出字段。

# 使用 SageMaker AI Canvas 构建预测模型
SageMaker AI 画布

Amazon Quick 作者可以将数据导出到 SageMaker AI Canvas 中，以构建可以发送回 Quick 的机器学习模型。作者可以通过预测分析使用这些 ML 模型来扩充其数据集，这些模型可用于构建分析和控制面板。

**先决条件**
+ 与 IAM 身份中心集成的快速账户。如果您的 Quick 账户未与 IAM Identity Center 集成，请创建一个新的 Quick 账户，然后选择**使用支持 IAM 身份中心的应用程序**作为身份提供商。
  + 有关 IAM Identity Center 的更多信息，请参阅 [Getting started](https://docs.amazonaws.cn/singlesignon/latest/userguide/getting-started.html)。
  + 要详细了解如何将 Quick 与 IAM 身份中心集成，请参阅[使用 IAM 身份中心配置您的 Amazon Quick 账户](setting-up-sso.md#sec-identity-management-identity-center)。
  + 要将资产从现有 Quick 账户导入到 IAM Identity Center 集成的新 Quick 账户，请参阅[资产捆绑包操作](https://docs.amazonaws.cn/quicksight/latest/developerguide/asset-bundle-ops.html)。
+ 与 I SageMaker AM 身份中心集成的新 AI 域。有关使用 IAM 身份中心登录 A SageMaker I 域的更多信息，请参阅[使用 IAM 身份中心登录 A SageMaker I 域](https://docs.amazonaws.cn/sagemaker/latest/dg/onboard-sso-users.html)。

**Topics**
+ [

## 在 Amazon Quick Sight 的 SageMaker AI Canvas 中构建预测模型
](#sagemaker-canvas-integration-create-model)
+ [

## 使用 SageMaker AI 画布模型创建数据集
](#sagemaker-canvas-integration-create-dataset)
+ [

## 注意事项
](#sagemaker-canvas-integration-considerations)

## 在 Amazon Quick Sight 的 SageMaker AI Canvas 中构建预测模型
构建预测模型

**在 SageMaker AI Canvas 中构建预测模型**

1. 登录 Amazon Quick 并导航到要为其创建预测模型的表格表或数据透视表。

1. 打开视觉对象菜单，然后选择**构建预测模型**。

1. 在出现的 “在 ** SageMaker AI Canvas 中构建预测模型**” 弹出窗口中，查看显示的信息，然后选择将**数据导出到 SAGEMAKER CANVAS**。

1. 在出现的 “导出” 窗格中，在导**出**完成**后选择 “前往 SAGEMAKER CAN** VAS”，进入 SageMaker AI Canvas 控制台。

1. 在 SageMaker AI Canvas 中，使用你从 Quick Sight 导出的数据创建预测模型。您可以参照指导教程来创建预测模型，也可以跳过教程，按照自己的节奏工作。有关在 SageMaker AI Canvas 中创建预测模型的更多信息，请参阅[构建模型](https://docs.amazonaws.cn/sagemaker/latest/dg/canvas-build-model-how-to.html#canvas-build-model-numeric-categorical)。

1. 将预测模型发送回 Quick Sight。有关将模型从 SageMaker AI Canvas 发送到 Amazon Quick Sight 的更多信息，请参阅[将您的模型发送到 Amazon Quick Sight](https://docs.amazonaws.cn/sagemaker/latest/dg/canvas-send-model-to-quicksight.html)。

## 使用 SageMaker AI 画布模型创建数据集
创建数据集

在 SageMaker AI Canvas 中创建预测模型并将其发送回 Quick Sight 后，使用新模型创建新数据集或将其应用于现有数据集。

**向数据集添加预测字段**

1. 打开 Quick 控制台，选择左侧**的数据**，然后选择**数据集**选项卡。

1. 上传一个新数据集或选择一个现有数据集。

1. 选择**编辑**。

1. 在数据集的数据准备页面上，选择 “添加”，然后选择 “**添加****预测字段**” 以打开 “**使用 SageMaker AI 增强**” 模式。

1. 对于**模型**，选择你从 SageMaker AI Canvas 发送到 Quick Sight 的模型。架构文件会**高级设置**窗格中自动填充。查看输入，然后选择**下一步**。

1. 在**查看输出**窗格上，输入您在 SageMaker AI Canvas 中创建的模型要定位的列的字段名称和描述。

1. 完成后，选择**准备数据**。

1. 选择**准备数据**后，系统会将您重定向到数据集页面。要发布新数据集，请选择**发布和可视化**。

当您发布使用 SageMaker AI Canvas 模型的新数据集时，数据将导入 SPICE，并在 SageMaker AI 中开始批量推理作业。完成该作业最长可能需要 10 分钟。

## 注意事项


以下限制适用于使用 Quick Sight 数据创建 SageMaker AI Canvas 模型。
+ 用于向 SageMaker AI Canvas 发送数据的 “**构建预测模型**” 选项仅适用于表格和表格数据透视表视觉对象。表格或数据透视表视觉对象必须包含 2 到 1,000 个字段且至少有 500 行。
+ 当您向数据集添加预测字段时，包含整数或地理数据类型的数据集将遇到架构映射错误。要解决此问题，请从数据集中移除整数或地理数据类型，或者将其转换为新的数据类型。

# 准备数据集示例


您可以在任何数据集中准备数据以使其更适合分析，例如，更改字段名称或添加计算字段。对于数据库数据集，您还可以通过指定 SQL 查询或联接两个或多个表来确定使用的数据。

可以使用以下主题了解如何准备数据集。

**Topics**
+ [

# 准备基于文件数据的数据集
](prepare-file-data.md)
+ [

# 准备基于 Salesforce 数据的数据集
](prepare-salesforce-data.md)
+ [

# 准备基于数据库数据的数据集
](prepare-database-data.md)

# 准备基于文件数据的数据集


使用以下过程准备基于本地网络或 Amazon S3 上的文本或 Microsoft Excel 文件的数据集。

**准备基于本地网络或 S3 上的文本或 Microsoft Excel 文件的数据集**

1. 通过选择以下选项之一打开用于数据准备的文件数据集：
   + 创建一个新的本地文件数据集，然后选择**编辑/预览数据**。有关从本地文本文件创建新数据集的更多信息，请参阅[使用本地文本文件创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-file.html)。有关使用微软 Excel 文件创建新数据集的更多信息，请参阅[使用微软 Excel 文件创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-excel.html)。
   + 创建新的 Amazon S3 数据集，然后选择**编辑/预览数据**。有关使用新的 Amazon S3 数据源创建新的 Amazon S3 数据集的更多信息，请参阅[使用 Amazon S3 文件创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-s3.html)。有关使用现有 Amazon S3 数据源创建新 Amazon S3 数据集的更多信息，请参阅[使用现有 Amazon S3 数据源创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-existing-s3.html)。
   + 从分析页面或**您的数据集**页面中，打开一个现有的 Amazon S3、文本文件或 Microsoft Excel 数据集以进行编辑。有关打开现有数据集进行数据准备的更多信息，请参阅[编辑数据集](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-data-set.html)。

1. （可选）在数据准备页面上，在应用程序栏上的数据集名称框中输入新名称。

   该名称默认为本地文件的文件名。例如，对于 Amazon S3 文件，该名称默认为 **Group 1**。

1. 检查文件上传设置，必要时进行更正。有关文件上传设置的更多信息，请参阅[选择文件上传设置](https://docs.amazonaws.cn/quicksight/latest/user/choosing-file-upload-settings.html)。
**重要**  
如果要更改上传设置，请在对数据集进行任何其他更改之前进行该更改。新的上传设置会导致 Amazon Quick Sight 重新导入文件。该过程会覆盖您的所有其他更改。

1. 通过执行以下一个或多个操作来准备数据：
   + [选择字段](https://docs.amazonaws.cn/quicksight/latest/user/selecting-fields.html)
   + [编辑字段名称和描述](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-name.html)
   + [更改字段数据类型](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-data-type.html)
   + [添加计算字段](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-calculated-field-analysis.html)
   + [筛选亚马逊 Quick Sight 中的数据](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-filter.html)

1. 检查 [SPICE](spice.md) 指示器，以查看您是否有足够的容量来导入数据集。文件数据集自动加载到 SPICE 中。当您选择 **Save & visualize** 或 **Save** 时，系统开始导入操作。

   如果您无权访问足够的 SPICE 容量，可以使用以下选项之一减小数据集大小：
   + 应用筛选条件来限制行数。
   + 选择字段以从数据集中删除。
**注意**  
在删除字段或筛选数据时，SPICE 指示器不会更新以指示节约了多少空间。它继续反映自上次导入以来 SPICE 的使用情况。

1. 选择 **Save** 保存工作，或选择 **Cancel** 取消工作。

   您可能还会看到 **Save & visualize**。根据从中开始的屏幕，可能会显示该选项。如果系统未显示该选项，您可以通过从数据集屏幕启动来创建新的可视化。

## 准备基于 Microsoft Excel 文件的数据集


要准备 Microsoft Excel 数据集，请按照以下过程操作。

**准备 Microsoft Excel 数据集**

1. 通过选择以下选项之一打开用于数据准备的文本文件数据集：
   + 新建一个 Microsoft Excel 数据集，然后选择**编辑/预览数据**。有关创建新 Excel 数据集的更多信息，请参阅[使用 Microsoft Excel 文件创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-excel.html)。
   + 打开现有的 Excel 数据集进行编辑。您可以从分析页面或**您的数据集**页面执行该操作。有关打开现有数据集进行数据准备的更多信息，请参阅[编辑数据集](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-data-set.html)。

1. （可选）在数据准备页面上，在应用程序栏上的数据集名称框中输入名称。如果不重命名数据集，其名称默认为 Excel 文件的名称。

1. 检查文件上传设置，必要时进行更正。有关文件上传设置的更多信息，请参阅[选择文件上传设置](https://docs.amazonaws.cn/quicksight/latest/user/choosing-file-upload-settings.html)。
**重要**  
如果需要更改上传设置，请在对数据集进行任何其他更改之前进行该更改。更改上传设置会导致 Amazon Quick Sight 重新导入文件。该过程会覆盖您到目前为止所做的任何更改。

1. （可选）更改选择的工作表。

1. （可选）更改选择的范围。为此，请从右上角的登录名下方的数据集菜单中打开**上传设置**。

1. 通过执行以下一个或多个操作来准备数据：
   + [选择字段](https://docs.amazonaws.cn/quicksight/latest/user/selecting-fields.html)
   + [编辑字段名称和描述](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-name.html)
   + [更改字段数据类型](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-data-type.html)
   + [添加计算字段](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-calculated-field-analysis.html)
   + [使用 Quick Sight 筛选数据](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-filter.html)

1. 检查 [SPICE](spice.md) 指示器，查看您是否有足够的空间来导入数据集。亚马逊 Quick Sight 必须将 Excel 数据集导入SPICE。当您选择 **Save & visualize** 或 **Save** 时，系统将开始此导入操作。

   如果您没有足够的 SPICE 容量，可以使用以下方法之一减小数据集大小：
   + 应用筛选条件来限制行数。
   + 选择字段以从数据集中删除。
   + 缩小要导入的数据范围。
**注意**  
在您加载它们之前，SPICE 指示器不会更新以反映您的更改。其显示自上次导入以来 SPICE 的使用情况。

1. 选择 **Save** 保存工作，或选择 **Cancel** 取消工作。

   您可能还会看到 **Save & visualize**。根据从中开始的屏幕，可能会显示该选项。如果系统未显示该选项，您可以通过从数据集屏幕启动来创建新的可视化。

# 准备基于 Salesforce 数据的数据集


要准备 Salesforce 数据集，请按照以下过程操作。

**准备 Salesforce 数据集**

1. 通过选择以下选项之一打开用于数据准备的 Salesforce 数据集：
   + 新建一个 Salesforce 数据集，然后选择**编辑/预览数据**。有关使用新的 Salesforce 数据源创建新 Salesforce 数据集的更多信息，请参阅[从 Salesforce 创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-salesforce.html)。有关使用现有 Salesforce 数据源创建新 Salesforce 数据集的更多信息，请参阅[使用现有 Salesforce 数据源创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-existing-salesforce.html)。
   + 从分析页面或**您的数据集**页面打开现有的 Salesforce 数据集进行编辑。有关打开现有数据集进行数据准备的更多信息，请参阅[编辑数据集](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-data-set.html)。

1. （可选）如果要更改数据集名称，请在数据准备页面的应用程序栏上的数据集名称框中输入名称。该名称默认为报告或对象名称。

1. (可选) 更改数据元素选择以查看报表或对象。

1. (可选) 更改数据选择以选择不同的报表或对象。

   如果**数据**窗格中显示的列表过长，您可以通过在**搜索表**框中输入搜索词来搜索并找到特定的项目。系统会显示名称中包含该搜索词的任何项目。搜索不区分大小写，不支持通配符。要查看所有项目，请选择搜索框右侧的取消图标 (**X**) 返回。

1. 通过执行以下一个或多个操作来准备数据：
   + [选择字段](https://docs.amazonaws.cn/quicksight/latest/user/selecting-fields.html)
   + [编辑字段名称和描述](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-name.html)
   + [更改字段数据类型](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-data-type.html)
   + [添加计算字段](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-calculated-field-analysis.html)
   + [使用 Quick Sight 筛选数据](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-filter.html)

1. 检查 [SPICE](spice.md) 指示器，查看您是否有足够的空间来导入数据集。对于 Salesforce 数据集，需要将数据导入到 SPICE 中。当您选择 **Save & visualize** 或 **Save** 时，导入操作开始。

   如果您没有足够的 SPICE 容量，您可以从数据集中删除字段或应用筛选条件来减小其大小。有关在数据集中添加和移除字段的更多信息，请参阅[选择字段](https://docs.amazonaws.cn/quicksight/latest/user/selecting-fields.html)。
**注意**  
SPICE 指示器不会更新以反映删除字段或筛选数据可节约的空间。它继续反映从数据源检索的数据集的大小。

1. 选择 **Save** 保存工作，或选择 **Cancel** 取消工作。

   您可能还会看到 **Save & visualize**。根据从中开始的屏幕，可能会显示该选项。如果系统未显示该选项，您可以通过从数据集屏幕启动来创建新的可视化。

# 准备基于数据库数据的数据集


可以使用以下过程基于对数据库的查询准备数据集。该数据集的数据可以来自诸如 Amazon Athena、Amazon RDS 或 Amazon Redshift 之类的 Amazon 数据库数据源，也可以来自外部数据库实例。您可以选择将数据的副本导入 [SPICE](spice.md) 还是直接查询数据。

**准备基于对数据库的查询的数据集**

1. 通过选择以下选项之一打开用于数据准备的数据库数据集：
   + 新建一个数据库数据集，然后选择**编辑/预览数据**。有关使用新数据库数据源创建新数据集的更多信息，请参阅[从数据库创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-database-data-set.html)。有关使用现有数据库数据源创建新数据集的更多信息，请参阅[使用现有数据库数据源创建数据集](https://docs.amazonaws.cn/quicksight/latest/user/create-a-data-set-existing-database.html)。
   + 从分析页面或**您的数据集**页面打开现有数据库的数据集进行编辑。有关打开现有数据集进行数据准备的更多信息，请参阅[编辑数据集](https://docs.amazonaws.cn/quicksight/latest/user/edit-a-data-set.html)。

1. （可选）在数据准备页面上，在应用程序栏上的数据集名称框中输入名称。

   如果在数据准备之前选择一个表，此名称默认为该表名称。否则为 **Untitled data source**。

1. 通过选择以下选项之一来确定您的数据的选择方式：
   + 要使用单个表提供数据，请选择一个表或更改表选择。

     如果在 **Tables** 窗格中显示的表列表很长，您可以在 **Search tables** 中键入搜索词以搜索特定的表。

     系统会显示名称中包含该搜索词的任何表。搜索不区分大小写，不支持通配符。要查看所有表，请选择搜索框右侧的取消图标 (**X**) 返回。
   + 要使用两个或多个联接表提供数据，请选择两个表并使用联接窗格联接它们。如果您选择使用联接表，则必须将数据导入 Quick Sight。有关使用 Amazon Quick Sight 界面连接数据的更多信息，请参阅[联接数据](https://docs.amazonaws.cn/quicksight/latest/user/joining-data.html)。
   + 要使用自定义 SQL 查询在新数据集中提供数据，请在**表**窗格中选择**切换到自定义 SQL** 工具。有关更多信息，请参阅[使用 SQL 自定义数据](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-SQL-query.html)。

     要更改现有数据集中的 SQL 查询，请在**字段**窗格中选择**编辑 SQL** 打开 SQL 窗格并编辑查询。

1. 通过执行以下一个或多个操作来准备数据：
   + [选择字段](https://docs.amazonaws.cn/quicksight/latest/user/selecting-fields.html)
   + [编辑字段名称和描述](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-name.html)
   + [更改字段数据类型](https://docs.amazonaws.cn/quicksight/latest/user/changing-a-field-data-type.html)
   + [添加计算字段](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-calculated-field-analysis.html)
   + [使用 Quick Sight 筛选数据](https://docs.amazonaws.cn/quicksight/latest/user/adding-a-filter.html)

1. 如果不联接表，请通过选择**查询**或 **SPICE** 单选按钮来选择是直接查询数据库还是将数据导入到 SPICE 中。我们建议使用 SPICE 来提高性能。

   如果要使用 SPICE，请检查 SPICE 指示器，查看您是否有足够的空间导入数据集。当您选择 **Save & visualize** 或 **Save** 时，导入操作开始。

   如果您没有足够的空间，您可以从数据集中删除字段或应用筛选条件来减小其大小。
**注意**  
SPICE 指示器不会更新以反映删除字段或筛选数据可节约的空间。它继续反映从数据源检索的数据集的大小。

1. 选择 **Save** 保存工作，或选择 **Cancel** 取消工作。

   您可能还会看到 **Save & visualize** 选项。根据从中开始的屏幕，可能会显示该选项。如果系统未显示该选项，您可以通过从数据集屏幕启动来创建新的可视化。