TopOne (Azure 流分析)
返回排名靠前的记录,其中 rank 根据指定的排序定义事件在窗口中的排名位置。 排序/排名基于事件列,并可以在 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)