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