分析函数 - Amazon Kinesis Data Analytics

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

分析函数

分析函数是返回根据由或标识的一组有限行(或大约)中的数据计算得出的结果的函数ORDER BY 子句SELECT 子句

SELECT 主题解释了排序依据子句,显示了排序依据图表以及窗口子句(和窗口规格图表)。要查看在 Select 语句中使用了排序子句的位置,请参阅本指南 SELECT 主题中的选择图表。

  1. 分析函数必须指定窗口。由于对窗口规格有一些限制,并且指定窗口化聚合窗口和窗口联接窗口之间也有一些区别,允许和不允许的窗口规格请参阅了解解释。

  2. 分析函数只能出现在 SELECT 子句的 <selection list> 部分或 ORDER BY 子句中。

在本主题的后面部分中包含了示例。

使用分析函数执行查询通常被称为窗口聚合(如下所述),不同于聚合函数

由于存在窗口规范,因此使用分析函数的查询生成结果的方式与聚合查询的结果不同。对于输入集中的每一行,窗口规范标识了一组不同的行,分析函数在这些行上运行。如果窗口规范还包含 PARTITION BY 子句,则窗口中生成结果时唯一需要考虑的行将是那些与输入行共享相同分区的行。

如果输入行在用作分析函数输入的列中包含空值,则分析函数会忽略该行,但 COUNT 除外,它会对具有空值的行进行计数。如果窗口(或者 PARTITION BY,则为窗口内的分区)不包含行,则分析函数将返回空值。唯一的例外是 COUNT,它返回零。

聚合函数和分析函数之间的区别
函数 输出 使用的行数或窗口 注意

聚合函数

每组输入行一行输出。

所有输出列都是在同一个窗口或同一组行上计算的。

不允许使用 “重复计数”聚合函数。不允许使用以下类型的语句:

SELECT COUNT(DISTINCT x) ... FROM ... GROUP BY ...

分析函数

每个输入行对应一个输出行。

每个输出列可以使用不同的窗口或分区进行计算。

COUNT DISTINCT 不能用作分析函数或用于窗口化聚合。

相关主题