Dela via


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å indata

Exempel på utdata:

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