✅ Azure 串流分析 ✅ 網狀架構事件串流
傳回排名記錄的陣列,其中 rank 會根據指定的順序定義事件在視窗中的排名位置。 排序/排名是以事件數據行為基礎,可以在 ORDER BY 子句中指定。
語法
-- Aggregate Function Syntax
CollectTop(<number of events as integer literal> [ , <scalar_expression> ]) OVER (ORDER BY (<column name> [ASC |DESC])+)
-- Analytic Function Syntax
CollectTop(<number of events as integer literal> [ , <scalar_expression> ]) OVER ([<PARTITION BY clause>] ORDER BY (<column name> [ASC | DESC])+ <LIMIT DURATION clause> [<WHEN clause>])
論點
<以整數常值表示的事件數目>
使用者想要從視窗中收集的最上層事件數目。
<scalar_expression>
CollectTop 會採用選擇性的純量運算式,可讓您指定所收集事件的投影。 如果沒有 參數,則會收集完整的事件記錄。
<數據行名稱>
輸入事件中的數據行名稱,其順序將會完成。 只允許依 bigint/float/datetime 類型排序。
OVER ([<PARTITION BY 子句 LIMIT DURATION 子><句> [<WHEN 子句>]]
決定套用 CollectTop 的數據列群組。 PARTITION BY 子句會指定具有相同數據分割索引鍵的數據列將會群組在一起。 LIMIT DURATION 子句會指定群組中包含多少記錄。 WHEN 子句會指定要包含在群組中的數據列布爾值條件。 如需使用量的詳細資訊,請參閱 OVER 子句 。
傳回型別
類型 {rank“ 的記錄數位: bigint、 ”value“: <projected_type },其中 <projected_type>> 是 的型<scalar_expression>別,如果沒有指定表達式,則為 記錄的類型。
備註
Null 會被視為最小值,如需詳細資訊,請參閱 https://msdn.microsoft.com/library/ms188385.aspx
範例
SELECT
value1,
CollectTop(2) OVER (ORDER BY value2 ASC, value3 DESC) as top1
FROM testinput timestamp by time
GROUP BY TumblingWindow(second, 5), value1
範例輸入:
範例輸出:
SELECT
value1,
CollectTop(2, x + y) OVER (ORDER BY value2 ASC, value3 DESC) as top1
FROM testinput timestamp by time
GROUP BY TumblingWindow(second, 5), value1