CollectTOP (Azure Stream Analytics)
Returnerar en matris med rangordnade poster, där rangordningen definierar händelsens rangordning i fönstret enligt den angivna ordningen. Ordningen/rangordningen baseras på händelsekolumner och kan anges i ORDER BY-satsen.
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>])
Argument
<antal händelser som heltalsliteral>
Antalet viktigaste händelser som användaren vill samla in från fönstret.
<scalar_expression>
CollectTop tar ett valfritt skalärt uttryck som gör att du kan ange en projektion över de insamlade händelserna. Utan parametern samlas fullständiga händelseposter in.
<kolumnnamn>
Namnet på kolumnen i indatahändelsen, enligt vilken ordning ska göras. Endast beställning efter bigint/float/datetime-typer tillåts.
ÖVER ([<PARTITION BY-sats><LIMIT DURATION-sats> [<WHEN-sats>]]
Avgör vilken grupp rader som CollectTop ska tillämpas på. PARTITION BY-satsen anger att raderna med samma partitionsnyckel ska grupperas tillsammans. LIMIT DURATION-satsen anger hur mycket historik som ingår i gruppen. WHEN-satsen anger ett booleskt villkor för de rader som ska ingå i gruppen. Mer information om användningen finns i OVER-satsen .
Returtyper
Matris med poster av typen { "rank" : bigint, "value": <projected_type> }, där <projected_type> är typen av <scalar_expression>
post eller post om inget uttryck har angetts.
Kommentarer
Null behandlas som det minimala värdet, för mer information titta på https://msdn.microsoft.com/library/ms188385.aspx
Exempel
SELECT
value1,
CollectTop(2) OVER (ORDER BY value2 ASC, value3 DESC) as top1
FROM testinput timestamp by time
GROUP BY TumblingWindow(second, 5), value1
Exempel på indata:
Exempel på utdata:
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