Поделиться через


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. Несоответствие типов приведет к ошибкам.
  • Если столбец был явно приведен к NVARCHAR(MAX) с помощью CAST или TRY_CAST, возвращается максимальное строковое значение.

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

См. также: