次の方法で共有


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

参照