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