TopOne

✅ 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)