共用方式為


CollectTOP (Azure Stream Analytics)

傳回等級記錄的陣列,其中等級定義根據指定的順序之視窗中事件的排名位置。 排序/等級是根據事件資料行,而且可以在 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