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