Delen via


MAX (Azure Stream Analytics)

Retourneert de maximumwaarde in de expressie.

Syntaxis

-- Aggregate Function Syntax
MAX ( expression )

-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])

Argumenten

expression

Is een constante, kolomnaam of functie en een combinatie van rekenkundige operatoren. Statistische functies en subquery's zijn niet toegestaan.

MAX kan worden gebruikt met de kolommen Bit, Bigint, Datetime en Float.

MAX kan ook worden gebruikt met NVARCHAR(MAX) met het volgende gedrag:

  • Als de kolom niet expliciet naar NVARCHAR(MAX) is gegoten, probeert MAX deze impliciet naar FLOAT te casten. Niet-overeenkomende typen leiden tot fouten.
  • Als de kolom expliciet is gecast naar NVARCHAR(MAX) met behulp van CAST of TRY_CAST, wordt de maximale tekenreekswaarde geretourneerd.

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

Bepaalt de groep rijen waarop MAX 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

Retourneert dezelfde waarde als expressie.

Voorbeelden

Met de statistische syntaxis verminderen we het aantal rijen. Hier selecteren we het maximum tarief voor elk tol per uur:

SELECT
  TollId,
  System.Timestamp() AS WindowEnd,
  MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
  TollId,
  TumblingWindow(hour,1)

Met de analysesyntaxis behouden we de invoerkardinaliteit. Hier vergelijken we voor elk voertuig dat door de tol gaat het huidige tarief met het maximum van het afgelopen uur:

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

Zie ook