Condividi tramite


massimo

✅ Flusso di eventi dell'infrastruttura di Analisi ✅ di flusso di Azure

Restituisce il valore massimo nell'espressione.

Sintassi

-- Aggregate Function Syntax
MAX ( expression )

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

Argomenti

di espressione

Costante, nome colonna o funzione e qualsiasi combinazione di operatori aritmetici. Non è possibile utilizzare funzioni di aggregazione e sottoquery.

MAX può essere usato con le colonne Bit, Bigint, Datetime e Float.

MAX può essere usato anche con NVARCHAR(MAX) con il comportamento seguente:

  • Se la colonna non è stata eseguita in modo esplicito a NVARCHAR(MAX), MAX tenterà di eseguirne il cast implicito in FLOAT. Le mancate corrispondenze di tipo genereranno errori.
  • Se è stato eseguito il cast esplicito della colonna a NVARCHAR(MAX) tramite CAST o TRY_CAST, verrà restituito il valore massimo della stringa.

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

Determina il gruppo di righe su cui viene applicato MAX. La clausola PARTITION BY specifica che le righe con la stessa chiave di partizione verranno raggruppate. La clausola LIMIT DURATION specifica la quantità di cronologia inclusa nel gruppo. La clausola WHEN specifica una condizione booleana per le righe da includere nel gruppo. Per altri dettagli sull'utilizzo, vedere la clausola OVER .

Tipi restituiti

Restituisce un valore uguale a expression.

Esempi

Con la sintassi di aggregazione si ridurrà il numero di righe. Qui selezioniamo la tariffa massima a ogni pedaggio ogni ora:

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

Con la sintassi di analisi, la cardinalità di input viene mantenuta. Qui per ogni veicolo che attraversa il pedaggio, confrontiamo la tariffa corrente con il massimo nell'ultima ora:

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

Vedere anche