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:
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