

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

# VAR\$1SAMP
<a name="sql-reference-VARSAMP"></a>

返回数字的非 null 集的样本方差 (null 值被忽略)。

VAR\$1SAMP 使用以下计算方式：
+ (SUM(expr\$1expr) - SUM(expr)\$1SUM(expr) / COUNT(expr)) / (COUNT(expr)-1)

换言之，对于一组给定的非 null 值，使用 S1 作为值的和，使用 S2 作为值的平方和，`VAR_SAMP` 会返回结果 (S2-S1\$1S1/N)/(N-1)。

在使用 `VAR_SAMP` 时，请注意以下事项：
+ 当输入集没有非 null 数据时，`VAR_SAMP` 将返回 `NULL`。如果提供为 null 或包含一个元素的输入集，则 `VAR_SAMP` 将返回 `null`。
+ 如果您未使用 `OVER` 子句，则 `VAR_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` 子句，则 `VAR_SAMP` 将作为分析函数进行计算。有关更多信息，请参阅 [分析函数](sql-reference-analytic-functions.md)。
+ 使用 `OVER` 子句的窗口式查询在滑动窗口中处理行。有关更多信息，请参阅[滑动窗口](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/sliding-window-concepts.html) 

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

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

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

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

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

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

在输入集中排除重复值。

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

### 示例数据集
<a name="w2aac22c29c22c29b2"></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="varsamp-example-1"></a>

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

#### 使用 STEP（推荐）
<a name="varsamp-example-step"></a>

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

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

SELECT STREAM ticker_symbol, VAR_SAMP(price) AS var_samp_price
    FROM "SOURCE_SQL_STREAM_001"
    GROUP BY ticker_symbol, STEP(("SOURCE_SQL_STREAM_001".ROWTIME) BY INTERVAL '60' SECOND);
```

#### 使用 FLOOR
<a name="varsamp-example-floor"></a>

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

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

SELECT STREAM ticker_symbol, VAR_SAMP(price) AS var_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="varsamp-example-results"></a>

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

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


### 示例 2：确定滑动窗口查询内的列中的值的样本方差
<a name="w2aac22c29c22c29b6"></a>

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

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

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

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

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

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


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