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


MIN (Azure Stream Analytics)

Возвращает минимальное значение выражения.

Синтаксис

-- Aggregate Function Syntax
MIN ( expression )

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

Аргументы

expression

Является константой, именем столбца или функцией и любым сочетанием арифметических операторов. Агрегатные функции и вложенные запросы не допускаются.

MIN можно использовать со столбцами Bit, Bigint, Datetime и Float.

MIN также можно использовать с NVARCHAR(MAX) со следующим поведением:

  • Если столбец не был явно приведен к NVARCHAR(MAX), то MIN попытается неявно привести его к FLOAT. Несоответствие типов приведет к ошибкам.
  • Если столбец был явно приведен к NVARCHAR(MAX) с помощью cast или TRY_CAST, возвращается минимальное строковое значение.

OVER (предложение< PARTITION BY><LIMIT DURATION> [<предложение> WHEN]]

Определяет группу строк, к которым применяется MIN. Предложение PARTITION BY указывает, что строки с одним и тем же ключом секции будут сгруппированы. Предложение LIMIT DURATION указывает, какой объем журнала включается в группу. Предложение WHEN задает логическое условие для строк, которые будут включены в группу. Дополнительные сведения об использовании см. в разделе Предложение OVER .

Типы возвращаемых данных

Возвращает то же значение, что и выражение.

Примеры

С помощью статистического синтаксиса мы уменьшаем количество строк. Здесь мы выбираем минимальный тариф по каждой плате каждый час:

SELECT
  TollId,
  System.Timestamp() AS WindowEnd,
  MIN(Toll) AS MinFare
FROM Input TIMESTAMP BY EntryTime
GROUP BY
  TollId,
  TumblingWindow(hour,1)

С помощью синтаксиса аналитики мы сохраняем кратность входных данных. Здесь для каждого транспортного средства, проходящих через плату, мы сравниваем текущий тариф с минимальным за последний час:

SELECT
  TollId,
  System.Timestamp() AS PassageTime,
  LicensePlate,
  Toll AS Fare,
  MIN (Toll) OVER (PARTITION BY VehicleClass LIMIT DURATION(hour,1)) AS MinimumFareOverLastHour
FROM Input TIMESTAMP BY EntryTime

См. также: