

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

# STDDEV\$1SAMP
<a name="sql-reference-STDDEVSAMP"></a>

以 <number-expression> 形式返回所有值的统计标准差，统计标准差针对组中余下的每一行进行计算并定义为 [VAR\$1SAMP](sql-reference-VARSAMP.md) 的平方根。

在使用 `STDDEV_SAMP` 时，请注意以下事项：
+ 当输入集没有非 null 数据时，`STDDEV_SAMP` 将返回 `NULL`。
+ 如果您未使用 `OVER` 子句，则 `STDDEV_SAMP` 将作为聚合函数进行计算。在这种情况下，聚合查询必须根据将流分组到有限行中的 `ROWTIME` 在单调表达式中包含 [GROUP BY 子句](sql-reference-group-by-clause.md)。否则，组将是无限流，并且查询永远无法完成，也不会输出任何行。有关更多信息，请参阅 [聚合函数](sql-reference-aggregate-functions.md)。
+ 使用 GROUP BY 子句的窗口式查询在滚动窗口中处理行。有关更多信息，请参阅[滚动窗口（使用 GROUP BY 的聚合）](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/tumbling-window-concepts.html)。
+ 如果您使用 `OVER` 子句，则 `STDDEV_SAMP` 将作为分析函数进行计算。有关更多信息，请参阅 [分析函数](sql-reference-analytic-functions.md)。
+ 使用 OVER 子句的窗口式查询在滑动窗口中处理行。有关更多信息，请参阅[滑动窗口](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/sliding-window-concepts.html) 
+ `STD_DEV` 是 `STDDEV_SAMP` 的别名。

## 语法
<a name="stddevsamp-syntax"></a>

```
 STDDEV_SAMP ( [DISTINCT | ALL] number-expression )
```

## 参数
<a name="stddevsamp-parameters"></a>

### ALL
<a name="stddevsamp-parameters-all"></a>

在输入集中包含重复值。`ALL` 是默认值。

### DISTINCT
<a name="stddevsamp-parameters-distinct"></a>

在输入集中排除重复值。

## 示例
<a name="stddevsamp-examples"></a>

### 示例数据集
<a name="w2aac22c29c18c23b2"></a>

以下示例基于样本股票数据集，后者是 *Amazon Kinesis Analytics 开发人员指南*中的[入门练习](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)的一部分。要运行每个示例，您需要一个具有样本股票代码输入流的 Amazon Kinesis Analytics 应用程序。要了解如何创建 Analytics 应用程序和配置样本股票代码输入流，请参阅 *Amazon Kinesis Analytics 开发人员指南*中的[入门](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/get-started-exercise.html)。

具有以下架构的示例股票数据集。

```
(ticker_symbol  VARCHAR(4),
sector          VARCHAR(16),
change          REAL,
price           REAL)
```

### 示例 1：确定滚动窗口查询内的列中值的统计标准差
<a name="w2aac22c29c18c23b4"></a>

以下示例演示如何使用 `STDDEV_SAMP` 函数来确定示例数据集的 PRICE 列的滚动窗口中的值的标准差。未指定 `DISTINCT`，因此计算中将包含重复值。

```
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), stddev_samp_price REAL);

CREATE OR REPLACE  PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"

SELECT STREAM ticker_symbol, STDDEV_SAMP(price) AS stddev_samp_price
    FROM "SOURCE_SQL_STREAM_001"
    GROUP BY ticker_symbol, FLOOR(("SOURCE_SQL_STREAM_001".ROWTIME - TIMESTAMP '1970-01-01 00:00:00') SECOND / 10 TO SECOND);
```

### 结果
<a name="stddev-example-results"></a>

上一示例输出的流与以下内容类似：

![\[Table showing ROWTIME, TICKER_SYMBOL, and STDDEV_SAMP_PRICE columns with sample data.\]](http://docs.aws.amazon.com/zh_cn/kinesisanalytics/latest/sqlref/images/sql-reference-stddev-samp-1.png)


### 示例 2：确定滑动窗口查询内的列中值的统计标准差
<a name="w2aac22c29c18c23c10"></a>

以下示例演示如何使用 `STDDEV_SAMP` 函数来确定示例数据集的 PRICE 列的滑动窗口中的值的标准差。未指定 `DISTINCT`，因此计算中将包含重复值。

```
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), stddev_samp_price REAL);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"

SELECT STREAM ticker_symbol, STDDEV_SAMP(price) OVER TEN_SECOND_SLIDING_WINDOW AS stddev_samp_price
FROM "SOURCE_SQL_STREAM_001"
 
WINDOW TEN_SECOND_SLIDING_WINDOW AS (
  PARTITION BY ticker_symbol
  RANGE INTERVAL '10' SECOND PRECEDING);
```

上一示例输出的流与以下内容类似：

![\[Table showing ROWTIME, TICKER_SYMBOL, and STDDEV_SAMP_PRICE columns with sample data.\]](http://docs.aws.amazon.com/zh_cn/kinesisanalytics/latest/sqlref/images/sql-reference-stddev-samp-2.png)


## 另请参阅
<a name="stddevsamp-seealso"></a>
+ 总体标准差: [STDDEV\$1POP](sql-reference-STDDEVPOP.md)
+ 样本方差: [VAR\$1SAMP](sql-reference-VARSAMP.md)
+ 总体方差: [VAR\$1POP](sql-reference-VARPOP.md)