

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

# 在公式表达式中使用聚合函数
<a name="expression-aggregation-functions"></a>

仅在[指标](metrics.md)中，您可以使用以下函数以聚合每个时间间隔的输入值，并计算单个输出值。聚合函数可以从关联资产聚合数据。

聚合函数参数可以是[变量](expression-variables.md)、[数字文字](expression-literals.md#number-literal-definition)、[时间函数](expression-temporal-functions.md)、嵌套表达式或聚合函数。公式 `max(latest(x), latest(y), latest(z))` 使用聚合函数作为参数，并返回 `x`、`y`、和 `z` 属性的最大当前值。

可以在聚合函数中使用嵌套表达式。当您使用嵌套表达式时，以下规则将适用：
+ 每个参数都只能有一个变量。  
**Example**  

  例如，支持 `avg(x*(x-1))` 和 `sum(x/2 )/avg(y^2 )`。

  例如，不支持 `min(x/y)`。
+ 每个参数可以有多级嵌套表达式。  
**Example**  

  例如，支持 `sum(avg(x^2 )/2)`。
+ 不同的参数可以有不同的变量。  
**Example**  

  例如，支持 `sum(x/2, y*2)`。

**注意**  
如果您的表达式包含测量值，则 AWS IoT SiteWise 使用当前时间间隔内测量值的最后一个值来计算聚合。
如果您的表达式包含属性，则 AWS IoT SiteWise 使用属性的最新值来计算聚合。


| 函数 | 说明 | 
| --- | --- | 
|  `avg(x0, ..., xn)`  |  返回给定变量在当前时间间隔内的平均值。 <a name="aggregation-function-no-output"></a>仅当给定变量在当前时间间隔内至少有一个数据点时，此函数才会输出数据点。  | 
|   `sum(x0, ..., xn)`  |  返回给定变量在当前时间间隔内的值总和。 <a name="aggregation-function-no-output"></a>仅当给定变量在当前时间间隔内至少有一个数据点时，此函数才会输出数据点。  | 
|  `min(x0, ..., xn)`  |  返回给定变量在当前时间间隔内的最小值。 <a name="aggregation-function-no-output"></a>仅当给定变量在当前时间间隔内至少有一个数据点时，此函数才会输出数据点。  | 
|  `max(x0, ..., xn)`  |  返回给定变量在当前时间间隔内的最大值。 <a name="aggregation-function-no-output"></a>仅当给定变量在当前时间间隔内至少有一个数据点时，此函数才会输出数据点。  | 
|  `count(x0, ..., xn)`  |  返回给定变量在当前时间间隔内的数据点总数。有关如何计算满足条件的数据点数量的更多信息，请参阅[计算与条件匹配的数据点](expression-tutorials.md#count-filtered-data)。 <a name="aggregation-function-always-output"></a>此函数会计算每个时间间隔的数据点。  | 
| `stdev(x0, ..., xn)` | 返回给定变量在当前时间间隔内的标准差。 仅当给定变量在当前时间间隔内至少有一个数据点时，此函数才会输出数据点。  | 