你当前正在访问 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
AMERICAN SAMOA -14.3 PAGO PAGO
CALIFORNIA 32.5709 NESTOR
MINNESOTA 43.5 BIGELOW
华盛顿州 45.58 WASHOUGAL
佐治亚州 30.67 FARGO
ILLINOIS 37 CAIRO
佛罗里达州 24.6611 SUGARLOAF KEY
KENTUCKY 36.5 HAZEL
德克萨斯 25.92 BROWNSVILLE
俄亥俄州 38.42 SOUTH PT
... ... ...

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

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

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

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

状态 StartTime EndTime ...
INDIANA 2007-01-01T00:00:00Z 2007-01-22T18:49:00Z ...
佛罗里达州 2007-01-03T10:55:00Z 2007-01-03T10:55:00Z ...
NEVADA 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 ...
CALIFORNIA 2007-01-11T22:00:00Z 2007-01-24T10:00:00Z ...
OKLAHOMA 2007-01-12T00:00:00Z 2007-01-18T23:59:00Z ...
MISSOURI 2007-01-13T03:00:00Z 2007-01-13T08:30:00Z ...
德克萨斯 2007-01-13T10:30:00Z 2007-01-13T14:30:00Z ...
ARKANSAS 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

输出

水果 版本 Color
Apple 1 Red
香蕉 黄色
1 Brown

与 min() 的比较

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

示例

arg_min()

查找首次发生直接死亡事件时,显示表中的所有列。

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

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

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

StartTime EndTime EpisodeId EventId 状态 EventType ...
2007-01-01T00:00:00Z 2007-01-22T18:49:00Z 2408 11929 INDIANA 洪水 ...

min()

发现第一次发生直接死亡事件。

查询筛选事件以仅包含至少一个直接死亡的事件,然后返回 StartTime 的最小值。

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

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

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