✅ Azure 流分析 ✅ 构造事件流
返回排名靠前的记录,其中排名根据指定的排序定义事件在窗口中的排名位置。 排序/排名基于事件列,可以在 ORDER BY 子句中指定。
语法
-- Aggregate Function Syntax
TopOne( [ <scalar_expression> ] ) OVER (ORDER BY (<column name> [ASC |DESC])+)
-- Analytic Function Syntax
TopOne( [ <scalar_expression> ] ) OVER ([<PARTITION BY clause>] ORDER BY (<column name> [ASC |DESC])+ <LIMIT DURATION clause> [<WHEN clause>])
论据
<scalar_expression>
TopOne 采用可选的标量表达式,用于指定顶端事件的投影。 如果没有参数,将返回完整的事件记录。
<column_name>
指定输入事件中将执行排序的列的名称。 请注意,仅允许按 bigint、float 和 datetime 类型排序。
OVER ([<PARTITION BY 子句><LIMIT DURATION 子句 [<WHEN 子>句>]]
确定应用 TopOne 的行组。 PARTITION BY 子句指定将具有相同分区键的行组合在一起。 LIMIT DURATION 子句指定组中包含多少历史记录。 可选的 WHEN 子句指定要包含在组中的行的布尔条件。 有关用法的更多详细信息,请参阅 OVER 子句 。
返回类型
参数 <scalar_expression> 投影的值;如果未提供任何参数,则为记录值。
例子
SELECT
TopOne() OVER (ORDER BY value DESC) as topEvent
FROM input
GROUP BY Tumbling(second, 10)
SELECT
TopOne(x * y) OVER (ORDER BY value DESC) as topEvent
FROM input
GROUP BY Tumbling(second, 10)