arg_min()(聚合函数)

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft 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