Over Aggregation
Batch Streaming
OVER aggregates compute an aggregated value for every input row over a range of ordered rows. In contrast to GROUP BY aggregates, OVER aggregates do not reduce the number of result rows to a single row for every group. Instead OVER aggregates produce an aggregated value for every input row.
OVER聚合为有序行范围内的每个输入行计算聚合值。与GROUP BY聚合不同,OVER聚合不会将每个组的结果行数减少到一行。相反,OVER聚合为每个输入行生成聚合值。
The following query computes for every order the sum of amounts of all orders for the same product that were received within one hour before the current order.
下面的查询为每个订单计算当前订单前一小时内收到的同一产品的所有订单的金额总和。
SELECT order_id, order_time, amount,
SUM(amount) OVER (
PARTITION BY product
ORDER BY order_time
RANGE BETWEEN INTERVAL '1' HOUR PRECEDING AND
Flink SQL 中的OVER聚合操作详解

本文详细介绍了Flink SQL中的OVER聚合,用于在有序行范围内计算每个输入行的聚合值,而不减少结果行数。OVER窗口需要ORDER BY子句定义顺序,目前Flink仅支持时间属性的升序。PARTITION BY子句可按分区计算聚合。OVER窗口的范围可通过ROWS或RANGE间隔定义,Flink目前只支持CURRENT ROW作为上限。
最低0.47元/天 解锁文章
1405

被折叠的 条评论
为什么被折叠?



