你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

arg_min()(聚合函数)

适用于:✅Azure 数据资源管理器Azure Monitor✅ Sentinel

在表中查找可最大程度地减少指定表达式的行。 它返回输入表或指定列的所有列。

注意

此函数与 summarize 运算符结合使用。

弃用的别名:argmin()

语法

arg_min ( ExprToMinimize,* | ExprToReturn [, ...])

详细了解语法约定

参数

客户 类型​​ 必需 说明
ExprToMinimize string ✔️ 确定最小值的表达式。
ExprToReturn string ✔️ 表达式从 ExprToMinimize的行中确定返回哪些列的值。 使用通配符 * 返回所有列。

Null 处理

ExprToMinimize 对于表中的所有行为 null 时,将选取表中的一行。 否则,会忽略 ExprToMinimize 为 null 的行。

返回

返回表中的一行,该行最小化 ExprToMinimize,以及 ExprToReturn中指定的列的值。 使用或 * 返回整个行。

提示

若要查看最小值,请使用 min() 函数

示例

以下示例查找每个状态下风暴事件的最大纬度。

StormEvents 
| summarize arg_min(BeginLat, BeginLocation) by State

输出

显示的结果表仅包括前 10 行。

状态 BeginLat BeginLocation
美属萨摩亚 -14.3 PAGO PAGO
加州 32.5709 内斯特
明尼苏达州 43.5 比奇洛
华盛顿州 45.58 WASHOUGAL
佐治亚州 30.67 法戈
伊利诺伊州 37 开罗
佛罗里达州 24.6611 SUGARLOAF KEY
肯塔基州 36.5 榛子
德克萨斯 25.92 布朗斯维尔
俄亥俄州 38.42 南 PT
... ... ...

查找每个状态中首次发生直接死亡事件时,显示所有列。

查询首先筛选事件,以仅包含至少有一个直接死亡的事件。 然后,查询将返回 StartTime 值最低的整个行。

StormEvents
| where DeathsDirect > 0
| summarize arg_min(StartTime, *) by State

输出

显示的结果表仅包括前 10 行和前 3 列。

状态 开始时间 结束时间 ...
印第安纳州 2007-01-01T00:00:00Z 2007-01-22T18:49:00Z ...
佛罗里达州 2007-01-03T10:55:00Z 2007-01-03T10:55:00Z ...
内华达州 2007-01-04T09:00:00Z 2007-01-05T14:00:00Z ...
路易斯安那州 2007-01-04T15:45:00Z 2007-01-04T15:52:00Z ...
华盛顿州 2007-01-09T17:00:00Z 2007-01-09T18:00:00Z ...
加州 2007-01-11T22:00:00Z 2007-01-24T10:00:00Z ...
俄克拉何马州 2007-01-12T00:00:00Z 2007-01-18T23:59:00Z ...
密苏里州 2007-01-13T03:00:00Z 2007-01-13T08:30:00Z ...
德克萨斯 2007-01-13T10:30:00Z 2007-01-13T14:30:00Z ...
阿肯色州 2007-01-14T03:00:00Z 2007-01-14T03:00:00Z ...
... ... ... ...

以下示例演示了 null 处理。

datatable(Fruit: string, Color: string, Version: int) [
    "Apple", "Red", 1,
    "Apple", "Green", int(null),
    "Banana", "Yellow", int(null),
    "Banana", "Green", int(null),
    "Pear", "Brown", 1,
    "Pear", "Green", 2,
]
| summarize arg_min(Version, *) by Fruit

输出

水果 版本 颜色
苹果 1 红色
香蕉 黄色
1 棕色

与 min() 的比较

arg_min() 函数不同于 min() 函数。 arg_min() 函数允许返回其他列以及最小值,min() 仅返回最小值本身。

示例

以下示例使用 arg_min() 查找每个状态中发生直接死亡事件的最后一次,并显示所有列。

StormEvents
| where DeathsDirect > 0
| summarize arg_min(StartTime, *)

结果表返回包含指定表达式中最小值的行的所有列。

开始时间 结束时间 EpisodeId EventId 状态 事件类型 ...
2007-01-01T00:00:00Z 2007-01-22T18:49:00Z 2408 11929 印第安纳州 洪水 ...

以下示例使用 min() 函数查找每次状态发生直接死亡事件的最后一次,但仅返回 StartTime 的最小值。

StormEvents
| where DeathsDirect > 0
| summarize min(StartTime)

结果表仅返回特定列中的最低值。

min_StartTime
2007-01-01T00:00:00Z