MAX (Azure Stream Analytics)
Returnerar maxvärdet i uttrycket.
Syntax
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argument
expression
Är en konstant, ett kolumnnamn eller en funktion och en kombination av aritmetiska operatorer. Mängdfunktioner och underfrågor är inte tillåtna.
MAX kan användas med kolumnerna Bit, Bigint, Datetime och Float.
MAX kan också användas med NVARCHAR(MAX) med följande beteende:
- Om kolumnen inte uttryckligen kastades till NVARCHAR(MAX) försöker MAX implicit omvandla den till FLOAT. Typmatchningar resulterar i fel.
- Om kolumnen uttryckligen kastades till NVARCHAR(MAX) med hjälp av CAST eller TRY_CAST returneras värdet för maximal sträng.
ÖVER ([<PARTITION BY-sats><LIMIT DURATION-sats> [<WHEN-sats>]]
Avgör vilken grupp av rader som MAX 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
Returnerar ett värde som är samma som uttryck.
Exempel
Med den aggregerade syntaxen minskar vi antalet rader. Här väljer vi det maximala priset för varje avgift varje timme:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
Med analyssyntaxen behåller vi kardinaliteten för indata. Här för varje fordon som går igenom vägtullen jämför vi det aktuella priset med det högsta under den senaste timmen:
SELECT
TollId,
System.Timestamp() AS PassageTime,
LicensePlate,
Toll AS Fare,
MAX (Toll) OVER (PARTITION BY VehicleClass LIMIT DURATION(hour,1)) AS MaximumFareOverLastHour
FROM Input TIMESTAMP BY EntryTime