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