MAX (Analisi di flusso di Azure)
Restituisce il valore massimo dell'espressione.
Sintassi
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argomenti
expression
Costante, nome di colonna o funzione e qualsiasi combinazione di operatori aritmetici. Non è possibile utilizzare funzioni di aggregazione e sottoquery.
MAX può essere usato con colonne Bit, Bigint, Datetime e Float.
MAX può essere usato anche con NVARCHAR(MAX) con il comportamento seguente:
- Se la colonna non è stata impostata in modo esplicito su NVARCHAR(MAX), MAX tenterà di eseguirne il cast implicito in FLOAT. Le mancate corrispondenze del 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 all'espressione.
Esempio
Con la sintassi di aggregazione si ridurrà il numero di righe. Qui si seleziona la tariffa massima a ogni numero di 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, viene mantenuta la cardinalità di input. Qui per ogni veicolo che passa attraverso 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