共用方式為


CollectTOP

✅ 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