

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

# EXP\$1AVG
<a name="sql-reference-exp-avg"></a>

```
EXP_AVG ( expression, <time-interval> )
```

EXP\$1AVG 返回在指定时间窗口内选择的值表达式的流的指数加权的平均值（[指数移动平均值](https://en.wikipedia.org/wiki/Moving_average)）。EXP\$1AVG 基于 <time-interval> 的值将指定窗口分成若干个时间间隔。对于最近的时间间隔，指定表达式的值的权重最大，而对于较早的间隔，权重则呈指数级降低。

## 示例
<a name="sql-reference-exp-avg-example"></a>

此示例创建了 30 秒窗口内每个股票代码价格的指数加权平均值，因此最近 10 秒子窗口中（该股票代码对应的）价格的权重是中间 10 秒子窗口中价格权重的两倍，是最早的 10 秒子窗口中价格权重的四倍。

```
select stream t.rowtime, ticker, price,
exp_avg(price, INTERVAL '10' SECOND) over w as avgPrice
from t
window w as (partition by ticker range interval '30' second preceding);
```

在此示例中，10 秒是衰减函数的半衰期，也就是说，应用于平均价格的权重下降两倍的时间段。换句话说，较早的权重是较近的权重的一半。在调用 EXP\$1AVG 时，time\$1interval 被指定为 interval '10' second。