全选并选择 “不同” - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

全选并选择 “不同”

如果指定了 ALL 关键字,则查询不会消除重复行。如果既未指定 ALL 也未指定 DISTINCT,则这是默认行为。

如果指定了 DISTINCT 关键字,则查询会根据 SELECT 子句中的列删除重复行。

请注意,出于这些目的,NULL 值被视为等于其自身而不等于任何其他值。这些语义与 GROUP BY 和 IS NOT DISTINCT FROM 运算符的语义相同。

SELECT DIS

只要 SELECT 子句中存在非常量的单调表达式,SELECT DISTINCT 就可以用于流式查询。(非常量单调表达式的基本原理与流式传输 GROUP BY 的基本原理相同。) Amazon Kinesis Data Analytics 在 SELECT DISTINCT 准备就绪后立即为其发送行。

如果 ROWTIME 是 SELECT 子句中的列之一,则出于消除重复的目的将其忽略。在 SELECT 子句中的其他列的基础上消除重复项。

例如:

SELECT STREAM DISTINCT ROWTIME, prodId, FLOOR(Orders.ROWTIME TO DAY) FROM Orders

显示在任何给定日期订购的一组独特产品。

如果你正在执行 “按楼层分组(ROWTIME TO MINUTE)”,并且在给定的一分钟内有两行,比如 22:49:10 和 22:49:15,那么这些行的摘要将以带有时间戳为 22:50:00 的形式公布。为什么? 因为那是该行最早完成的时间。

注意:“GROUP BY ceil(ROWTIME TO MINUTE)”或“GROUP BY floor(ROWTIME TO MINUTE) - INTERVAL '1' DAY”将提供相同的行为。

决定行完成的不是分组表达式的值,而是该表达式更改值的时候。

如果你希望输出行的行时间是它们的发出时间,那么在下面的例子中,你需要从表单 1 改为使用表单 2:

(Form 1)   select distinct floor(s.rowtime to hour), a,b,c   from s (Form 2)   select min(s.rowtime) as rowtime, floor(s.rowtime to hour), a, b, c   from s   group by floor(s.rowtime to hour), a, b, c