本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
STDDEV_SAMP
以 <number-expression> 形式返回所有值的统计标准差,统计标准差针对组中余下的每一行进行计算并定义为 VAR_SAMP 的平方根。
在使用 STDDEV_SAMP
时,请注意以下事项:
当输入集没有非 null 数据时,
STDDEV_SAMP
将返回NULL
。如果您不使用该
OVER
子句,STDDEV_SAMP
则按聚合函数计算。在这种情况下,聚合查询必须包含GROUP BY 子句基于ROWTIME
将流分组为有限行的单调表达式。否则,该组是无限流,查询将永远不会完成,也不会发出任何行。有关更多信息,请参阅聚合函数:-
使用 GROUP BY 子句的窗口查询在翻滚窗口中处理行。有关更多信息,请参阅滚动窗口(使用 GROUP BY 的聚合)。
如果您使用该
OVER
子句,STDDEV_SAMP
则计算为分析函数。有关更多信息,请参阅分析函数:-
使用 OVER 子句的窗口查询在滑动窗口中处理行。有关更多信息,请参阅滑动窗口
STD_DEV
是STDDEV_SAMP
的别名。
语法
STDDEV_SAMP ( [DISTINCT | ALL] number-expression )
参数
ALL
在输入集中包含重复值。ALL
是默认值。
DISTINCT
在输入集中排除重复值。
示例
示例数据集
以下示例基于样本库存数据集,该数据集是 Amazon Kinesis Analytics 开发人员指南中入门练习的一部分。要运行每个示例,您需要一个包含样本股票行情输入流的 Amazon Kinesis Analytics 应用程序。要了解如何创建分析应用程序和配置示例股票行情输入流,请参阅 Amazon Kinesis Analytics 开发者指南中的入门指南。
具有以下架构的示例股票数据集。
(ticker_symbol VARCHAR(4), sector VARCHAR(16), change REAL, price REAL)
示例 1:确定滚动窗口查询内的列中值的统计标准差
以下示例演示如何使用 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);
结果
上一示例输出的流与以下内容类似:
示例 2:确定滑动窗口查询内的列中值的统计标准差
以下示例演示如何使用 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);
上一示例输出的流与以下内容类似:
另请参阅
总体标准差: STDDEV_POP
样本方差: VAR_SAMP
总体方差: VAR_POP