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