MAX (Azure Stream Analytics)
A kifejezés maximális értékét adja eredményül.
Szintaxis
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
Argumentumok
expression
Állandó, oszlopnév vagy függvény, valamint az aritmetikai operátorok bármely kombinációja. Az összesítő függvények és albekérdezések nem engedélyezettek.
A MAX Bit, Bigint, Datetime és Float oszlopokkal használható.
A MAX az NVARCHAR(MAX) használatával is használható a következő viselkedéssel:
- Ha az oszlopot nem öntötte explicit módon az NVARCHAR(MAX) értékre, akkor a MAX implicit módon megpróbálja a FLOAT-ra leadni. A típuseltérések hibákat eredményeznek.
- Ha az oszlopot explicit módon öntötték az NVARCHAR(MAX) értékre a CAST vagy TRY_CAST használatával, a függvény a maximális sztringértéket adja vissza.
OVER ([<PARTITION BY záradék><LIMIT DURATION záradék> [<WHEN záradék>]]
Meghatározza azt a sorcsoportot, amelyre a MAX van alkalmazva. A PARTITION BY záradék azt határozza meg, hogy az azonos partíciókulcsot tartalmazó sorok csoportosítva legyenek. A KORLÁT IDŐTARTAMA záradék megadja, hogy a csoport mennyi előzményt tartalmaz. A WHEN záradék logikai feltételt ad meg a csoportba felvenni kívánt sorokhoz. A használattal kapcsolatos további részletekért lásd az OVER záradékot .
Visszatérési típusok
A kifejezéssel megegyező értéket ad vissza.
Példák
Az összesítés szintaxisával csökkentjük a sorok számát. Itt minden óránként kiválasztjuk az egyes díjfizetési díjak maximális viteldíját:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
Az elemzési szintaxissal fenntartjuk a bemeneti számosságot. Itt az útdíjon áthaladó összes jármű esetében összehasonlítjuk az aktuális viteldíjakat az elmúlt óra maximális díjával:
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