分析函数 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

分析函数

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

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

  1. 分析函数必须指定一个窗口。由于对窗口规格有一些限制,并且为窗口聚合指定窗口和窗口联接指定窗口之间也存在一些区别,请参阅允许和禁止的窗口规范说明。

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

本主题后面的表格中说明了其他差异。

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

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

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

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

聚合函数

每组输入行一个输出行。

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

DISTINCT DISTINCT聚合函数. 不允许使用以下类型的语句:

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

分析函数

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

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

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

相关主题