Delen via


CollectTOP

✅ Azure Stream Analytics ✅ Fabric Eventstream

Retourneert een matrix met gerangschikte records, waarbij rang de positie van de rangschikking van de gebeurtenis in het venster definieert volgens de opgegeven volgorde. Rangschikken/rangschikken is gebaseerd op gebeurteniskolommen en kan worden opgegeven in de ORDER BY-component.

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 wil verzamelen uit het venster.

<scalar_expression>

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

<kolomnaam>

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

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

Bepaalt de groep rijen waarop CollectTop wordt toegepast. De COMPONENT PARTITION BY geeft aan dat de rijen met dezelfde partitiesleutel worden gegroepeerd. De component LIMIT DURATION geeft aan hoeveel geschiedenis er in de groep is opgenomen. De WHEN-component geeft een Booleaanse voorwaarde op voor de rijen die in de groep moeten worden opgenomen. Zie de 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> record is als er geen expressie is opgegeven.

Opmerkingen

Null wordt behandeld als de minimale waarde, 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