Delen via


CollectTOP (Azure Stream Analytics)

Retourneert een matrix van gerangschikte records, waarbij rang de rangschikkingspositie van de gebeurtenis in het venster definieert op basis van de opgegeven volgorde. Volgorde/rangschikking is gebaseerd op gebeurteniskolommen en kan worden opgegeven in de COMPONENT ORDER BY.

Syntaxis

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

Argumenten

<aantal gebeurtenissen als letterlijk geheel getal>

Het aantal belangrijkste gebeurtenissen dat de gebruiker uit het venster wil verzamelen.

<scalar_expression>

CollectTop maakt gebruik van een optionele scalaire expressie waarmee u een projectie over de verzamelde gebeurtenissen kunt opgeven. Zonder de parameter worden volledige gebeurtenisrecords verzameld.

<kolomnaam>

Naam van de kolom in de invoer-gebeurtenis, waarmee de volgorde wordt uitgevoerd. Alleen bestellen op bigint-/float-/datetime-typen is toegestaan.

OVER ([<COMPONENT PARTITION BY><COMPONENT LIMIT DURATION> [<WHEN component>]]

Bepaalt de groep rijen waarop CollectTop wordt toegepast. De PARTITION BY-component geeft aan dat de rijen met dezelfde partitiesleutel worden gegroepeerd. De component LIMIT DURATION geeft aan hoeveel geschiedenis wordt opgenomen in de groep. De WHEN-component geeft een booleaanse voorwaarde op voor de rijen die moeten worden opgenomen in de groep. Zie OVER-component voor meer informatie over het gebruik.

Retourtypen

Matrix van records van het type { "rank" : bigint, "value": <projected_type> }, waarbij <projected_type> het type van de <scalar_expression> of een record is als er geen expressie is opgegeven.

Opmerkingen

Null wordt behandeld als de minimale waarde. Bekijk voor meer informatie https://msdn.microsoft.com/library/ms188385.aspx

Voorbeelden

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

Voorbeeldinvoer:

Voorbeeldinvoer

Voorbeelduitvoer:

Voorbeelduitvoer

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