✅ Azure 串流分析 ✅ 網狀架構事件串流
傳回表達式中的最大值。
語法
-- Aggregate Function Syntax
MAX ( expression )
-- Analytic Function Syntax
MAX ( expression ) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
論點
表示式
這是常數、數據行名稱或函式,以及算術運算符的任何組合。 不允許彙總函式和子查詢。
MAX 可以搭配 Bit、Bigint、Datetime 和 Float 數據行使用。
MAX 也可以與 NVARCHAR(MAX) 搭配使用,並具有下列行為:
- 如果數據行未明確轉換成 NVARCHAR(MAX),則 MAX 會嘗試以隱含方式將它轉換成 FLOAT。 類型不符會導致錯誤。
- 如果數據行使用 CAST 或 TRY_CAST 明確轉換成 NVARCHAR(MAX),則會傳回最大字串值。
OVER ([<PARTITION BY 子句 LIMIT DURATION 子><句> [<WHEN 子句>]]
決定套用 MAX的數據列群組。 PARTITION BY 子句會指定具有相同數據分割索引鍵的數據列將會群組在一起。 LIMIT DURATION 子句會指定群組中包含多少記錄。 WHEN 子句會指定要包含在群組中的數據列布爾值條件。 如需使用量的詳細資訊,請參閱 OVER 子句 。
傳回型別
傳回與表達式相同的值。
範例
透過匯總語法,我們將減少數據列數目。 在這裡,我們會選取每小時每個收費站的票價上限:
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
使用分析語法,我們會維護輸入基數。 對於每輛經過通行費的車輛,我們會將目前的車資與過去一小時內的最大值進行比較:
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