# 定义聚合范围

通常，结合两个因子可以确定用于定义表达式中聚合值的记录。当在可视化中使用时，这些因子为：

* 维度值（图表表达式中的聚合）
* 选择项

总之，这些因子可定义聚合的范围。您可能会遇到希望计算忽略选择项、维度或同时忽略这二者的情况。在图表函数中，为此可以使用 TOTAL 限定符、集合分析或两者的组合。总而言之：

* 忽略或调整维度分组：使用 TOTAL 限定符

* 忽略或调整选择：使用集合分析

聚合：方法和描述

| 方法 | 描述 |
| --- | --- |
| TOTAL 限定符 | 在聚合函数内使用合计限定符忽略维度值。<br><br>总限定符可在聚合中使用，以便通过忽略维度值来重新定义聚合范围。将改为对所有可能的字段值执行聚合。<br><br>TOTAL 限定符后可能紧跟着一系列由尖括号括起来的一个或多个字段名。<br><br>例如：<br><br>`Sum(TOTAL <Quarter> {<Year={2013}, Quarter={'Q2'}>} Amount)`<br><br>这些字段名应该是图表维度的子集。此时，计算会忽略所有图表维度，但会计算已列出的变量，即列出的维度字段内字段值的各组合均会返回一个值。此外，当前并非为图表内维度的字段也可能会包括在列表之中。这对于组维度可能极为有用，其中未固定维度字段。列出组中的所有维度会导致函数在向下钻取级别更改时给出一致的聚合结果。<br><br>有关在尖括号中添加例外的示例，请参阅[示例：TOTAL 限定符（带例外）和集合分析](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm#Examples) 。 |
| 集合分析 | 在聚合内使用集合分析将覆盖选择项。将对在维度之间拆分的所有值执行聚合。 |
| TOTAL 限定符和集合分析 | 在聚合中使用 TOTAL 限定符和集合分析会覆盖选择并忽略所有维度，TOTAL 限定符后尖括号中列出的维度除外。 |
| ALL 限定符 | 在聚合内使用 ALL 限定符将忽略选择项和维度。通过 {1} 设置分析语句和 TOTAL 限定符可以获得同等效果：<br><br>`=sum(All Sales)`<br><br>`<br><br>=sum({1} Total Sales)  ` |

## 示例：TOTAL 限定符

以下示例显示了如何使用 TOTAL 计算相对共享。假定已选择 Q2，使用 TOTAL 计算全部值的总和，同时忽略维度。

示例：总计限定符

| Year | Quarter | Sum(Amount) | Sum(TOTAL Amount) | Sum(Amount)/Sum(TOTAL Amount) |
| --- | --- | --- | --- | --- |
|  |  | 3000 | 3000 | 100% |
| 2012 | Q2 | 1700 | 3000 | 56,7% |
| 2013 | Q2 | 1300 | 3000 | 43,3% |

提示注释要将数字显示为百分比，请针对要显示为百分比值的度量，在属性面板中的 Number formatting 下，选择 Number，然后从 Formatting 中选择 Simple 和其中一种百分比格式。

## 示例：集合分析

以下示例显示了如何在做出任何选择之前使用集合分析比较不同数据集。假定已选择 Q2，使用带集合定义 {1} 的集合分析计算全部值的总和，同时忽略所有选择项，但按维度拆分。

示例：集合分析

| Year | Quarter | Sum(Amount) | Sum({1} Amount) | Sum(Amount)/Sum({1} Amount) |
| --- | --- | --- | --- | --- |
|  |  | 3000 | 10800 | 27,8% |
| 2012 | Q1 | 0 | 1100 | 0% |
| 2012 | Q3 | 0 | 1400 | 0% |
| 2012 | Q4 | 0 | 1800 | 0% |
| 2012 | Q2 | 1700 | 1700 | 100% |
| 2013 | Q1 | 0 | 1000 | 0% |
| 2013 | Q3 | 0 | 1100 | 0% |
| 2013 | Q4 | 0 | 1400 | 0% |
| 2013 | Q2 | 1300 | 1300 | 100% |

## 示例：TOTAL 限定符和集合分析（{1} 限定符）

以下示例显示了如何在所有维度之间做出任何选择之前组合集合分析和 TOTAL 限定符来比较不同数据集。假定已选择 Q2，使用带集合定义 {1} 的集合分析和 TOTAL 限定符计算全部值的总和，同时忽略所有选择项，并忽略维度。

示例：TOTAL 限定符和集合分析

| Year | Quarter | Sum(Amount) | Sum({1} TOTAL Amount) | Sum(Amount)/Sum({1} TOTAL Amount) |
| --- | --- | --- | --- | --- |
|  |  | 3000 | 10800 | 27,8% |
| 2012 | Q2 | 1700 | 10800 | 15,7% |
| 2013 | Q2 | 1300 | 10800 | 12% |

## 示例：TOTAL 先导阀分析和数据集分析（将数据与参考值进行比较）

下面的示例展示了如何使用集合分析和 TOTAL 限定符在表格中创建参考列，以便于对指标进行行级比较。为了使数据更易于理解和使用，我们对度量列进行了标注。

2013 年第二季度的数据表作为参考，与表格中的其他所有值进行比较。

执行以下操作：

1. 将表格添加到工作表中。

2. 添加以下字段作为维度：

   * Year

   * Quarter

3. 添加以下度量：

   ```
   Sum(Amount)
   ```

4. 在刚刚添加的度量的属性中，给度量加上以下标签： Total Sales

5. 添加以下度量：

   ```
   Sum(TOTAL {<Year={2013}, Quarter={'Q2'}>} Amount)
   ```

6. 在刚刚添加的度量的属性中，给度量加上以下标签： Reference Quarter (2013-Q2) Total Sales

7. 添加以下度量：

   ```
   round((sum(Amount) / sum(total {<Year={2013}, Quarter={'Q2'}>} Amount))*100,'0.01') & '%'
   ```

8. 在刚刚添加的度量的属性中，给度量加上以下标签： Rounded Quotient - Total Sales Compared to Reference Quarter (2013-Q2)

在没有应用任何选择的情况下，您的表格应当如下所示：

示例：TOTALTOTAL 限符和集合分析（参考列）

| Year | Quarter | Total Sales | Reference Quarter (2013-Q2) Total Sales | Rounded Quotient - Total Sales Compared to Reference Quarter (2013-Q2) |
| --- | --- | --- | --- | --- |
| 2012 | Q1 | 1100 | 1300 | 84.62% |
| 2012 | Q2 | 1700 | 1300 | 130.77% |
| 2012 | Q3 | 1400 | 1300 | 107.69% |
| 2012 | Q4 | 1800 | 1300 | 138.46% |
| 2013 | Q1 | 1000 | 1300 | 76.92% |
| 2013 | Q2 | 1300 | 1300 | 100.00% |
| 2013 | Q3 | 1100 | 1300 | 84.62% |
| 2013 | Q4 | 1400 | 1300 | 107.69% |

## 示例：TOTAL 限定符（带例外）和集合分析

下面的示例展示了如何使用TOTAL 限定符，但在方括号中注明了该限定符的例外情况。示例表达式还使用了集合分析。

执行以下操作：

1. 将表格添加到工作表中。

2. 添加以下字段作为维度：

   * Year

   * Quarter

3. 添加以下度量：

   ```
   Sum(Amount)
   ```

4. 在刚刚添加的度量的属性中，给度量加上以下标签： Total Sales

5. 添加以下度量：

   ```
   Sum(TOTAL <Quarter> {<Year={2013}, Quarter={'Q2'}>} Amount)
   ```

6. 在刚刚添加的度量的属性中，给度量加上以下标签： Reference Quarter (2013-Q2) Total Sales

示例：TOTALTOTAL 限定符（带例外）和集合分析

| Year | Quarter | Total Sales | Reference Quarter (2013-Q2) Total Sales |
| --- | --- | --- | --- |
| 2012 | Q1 | 1100 | 0 |
| 2012 | Q2 | 1700 | 1300 |
| 2012 | Q3 | 1400 | 0 |
| 2012 | Q4 | 1800 | 0 |
| 2013 | Q1 | 1000 | 0 |
| 2013 | Q2 | 1300 | 1300 |
| 2013 | Q3 | 1100 | 0 |
| 2013 | Q4 | 1400 | 0 |

参考列表达式解释如下：

* 集合表达式 {&lt;Year={2013}, Quarter={'Q2'}&gt;} 将输入数据限制为 Year 为 2013 和 Quarter 为 Q2 的记录。

* TOTAL 限定符可确保将表格中的所有维度忽略。不过，使用 &lt;Quarter&gt; 指定符时，Quarter 维度是个例外。

## 本页示例中使用的数据

示例中所使用的数据：

```
AggregationScope:
LOAD * inline [
Year Quarter Amount
2012 Q1 1100
2012 Q2 1700
2012 Q3 1400
2012 Q4 1800
2013 Q1 1000
2013 Q2 1300
2013 Q3 1100
2013 Q4 1400] (delimiter is ' ');
```

## 了解详情

* [集合分析](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Qlik 社区：聚合范围](https://community.qlik.com/t5/Qlik-Design-Blog/The-Aggregation-Scope/ba-p/1467321)