MIN(Azure 流分析)
在表达式中返回最小值。
语法
-- 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。 类型不匹配将导致错误。
- 如果使用 CAST或 TRY_CAST 将列显式强制转换为 NVARCHAR (MAX) ,则将返回最小字符串值。
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