Dela via


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

Se även