共用方式為


MAX (Azure Stream Analytics)

傳回運算式中的最大值。

語法

-- Aggregate Function Syntax
MAX ( expression )

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

引數

expression

是一個常數、資料行名稱或函數,以及任何的算術運算子組合。 不允許彙總函式和子查詢。

MAX 可以搭配 Bit、Bigint、Datetime 和 Float 資料行使用。

MAX 也可以搭配 NVARCHAR (MAX) 搭配下列行為使用:

  • 如果資料行未明確轉換成 NVARCHAR (MAX) ,則 MAX 會嘗試將它隱含轉換成 FLOAT。 類型不符會導致錯誤。
  • 如果資料行已使用 CASTTRY_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

另請參閱