CollectTOP (Azure Stream Analytics)

Gibt ein Array von Datensätzen mit Rangfolge zurück, wobei "rank" die Rangfolgenposition des Ereignisses im Fenster entsprechend der angegebenen Sortierung definiert. Die Sortierung/Rangfolge basiert auf Ereignisspalten und kann in einer ORDER BY-Klausel angegeben werden.

Syntax

-- 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>])

Argumente

<Anzahl der Ereignisse als ganzzahliger Literalwert>

Die Anzahl der Top-Ereignisse, die der Benutzer im Fenster erfassen möchte.

<scalar_expression>

CollectTop verwendet einen optionalen Skalarausdruck, mit dem Sie eine Projektion für die gesammelten Ereignisse angeben können. Ohne den Parameter werden vollständige Ereignisdatensätze gesammelt.

<Spaltenname>

Der Name der Spalte im Eingabeereignis, nach dem die Sortierung erfolgt. Sortierung ist nur nach "bigint/float/datetime"-Typen zulässig.

OVER ([<PARTITION BY-Klausel><LIMIT DURATION-Klausel> [<WHEN-Klausel>]]

Bestimmt die Gruppe von Zeilen, auf die CollectTop angewendet wird. Die PARTITION BY-Klausel gibt an, dass die Zeilen mit demselben Partitionsschlüssel gruppiert werden. Die LIMIT DURATION-Klausel gibt an, wie viel Verlauf in der Gruppe enthalten ist. Die WHEN-Klausel gibt eine boolesche Bedingung für die Zeilen an, die in die Gruppe eingeschlossen werden sollen. Weitere Informationen zur Verwendung finden Sie unter OVER-Klausel .

Rückgabetypen

Array von Datensätzen vom Typ { "rank" : bigint, "value": <projected_type> }, wobei <projected_type> der Typ des <scalar_expression> oder eines Datensatzes ist, wenn kein Ausdruck angegeben ist.

Bemerkungen

Null wird als minimaler Wert behandelt. Weitere Informationen findest du unter https://msdn.microsoft.com/library/ms188385.aspx

Beispiele

SELECT   
    value1,  
    CollectTop(2) OVER (ORDER BY value2 ASC, value3 DESC) as top1  
FROM testinput timestamp by time  
GROUP BY TumblingWindow(second, 5), value1  

Beispieleingabe:

Beispieleingabe

Beispielausgabe:

Beispielausgabe

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