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 にキャストしようとします。 型が一致しない場合、エラーが発生します。
- CAST または TRY_CAST を使用して列が NVARCHAR(MAX) に明示的にキャストされた場合は、最大文字列値が返されます。
OVER ([<PARTITION BY 句><LIMIT DURATION 句> [<WHEN 句>]]
MAX が適用される行のグループを決定します。 PARTITION BY 句は、同じパーティション キーを持つ行をグループ化することを指定します。 LIMIT DURATION 句は、グループに含まれる履歴の量を指定します。 WHEN 句は、グループに含める行のブール条件を指定します。 使用法の詳細については、 OVER 句 を参照してください。
戻り値の型
式と同じ値を返します。
例
集計構文では、行数を減らします。 ここでは、1 時間ごとに各有料の最大料金を選択します。
SELECT
TollId,
System.Timestamp() AS WindowEnd,
MAX(Toll) AS MaxFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
TumblingWindow(hour,1)
分析構文を使用すると、入力カーディナリティが維持されます。 ここでは、通行料を通過するすべての車両について、現在の運賃を過去 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