你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在表中查找最大化指定表达式的行。 它返回输入表或指定列的所有列。
注意
此函数与 summarize 运算符结合使用。
弃用的别名:argmax()
语法
              arg_max
              (ExprToMaximize,*ExprToReturn [ |  ...],)
详细了解语法约定。
参数
| 客户 | 类型 | 必需 | 说明 | 
|---|---|---|---|
| ExprToMaximize | string | ✔️ | 确定最大值的表达式。 | 
| ExprToReturn | string | ✔️ | 表达式从 ExprToMaximize的行中确定返回哪些列的值。  使用通配符 *返回所有列。 | 
返回
返回表中的一行,该行最大化指定的表达式 ExprToMaximize,以及 ExprToReturn中指定的列的值。
提示
若要查看最大值,请使用 max() 函数。
示例
常规示例
以下示例查找每个状态下风暴事件的最大纬度。
StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State
输出
结果表仅显示前 10 行。
| 状态 | BeginLat | BeginLocation | 
|---|---|---|
| 密西西比州 | 34.97 | 巴顿 | 
| 佛蒙特州 | 45 | 北特洛伊 | 
| 美属萨摩亚 | -14.2 | OFU | 
| 夏威夷 | 22.2113 | 普林斯维尔 | 
| 明尼苏达州 | 49.35 | ARNESEN | 
| 罗得岛州 | 42 | WOONSOCKET | 
| 印第安纳州 | 41.73 | 弗里蒙特 | 
| 西弗吉尼亚州 | 40.62 | 切斯特 | 
| 南卡罗来纳州 | 35.18 | LANDRUM | 
| 德克萨斯 | 36.4607 | DARROUZETT | 
| ... | ... | ... | 
以下示例查找每个状态中发生直接死亡事件的最后一次,并显示所有列。
查询首先筛选事件,以仅包含至少一个直接死亡的事件。 然后,查询将返回包含最新 StartTime的整行。
StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *) by State
输出
结果表仅显示前 10 行和前三列。
| 状态 | 开始时间 | 结束时间 | ... | 
|---|---|---|---|
| 关岛 | 2007-01-27T11:15:00Z | 2007-01-27T11:30:00Z | ... | 
| 麻萨诸塞州 | 2007-02-03T22:00:00Z | 2007-02-04T10:00:00Z | ... | 
| 美属萨摩亚 | 2007-02-17T13:00:00Z | 2007-02-18T11:00:00Z | ... | 
| 爱达荷州 | 2007-02-17T13:00:00Z | 2007-02-17T15:00:00Z | ... | 
| 特拉华州 | 2007-02-25T13:00:00Z | 2007-02-26T01:00:00Z | ... | 
| 怀俄明州 | 2007-03-10T17:00:00Z | 2007-03-10T17:00:00Z | ... | 
| 新墨西哥州 | 2007-03-23T18:42:00Z | 2007-03-23T19:06:00Z | ... | 
| 印第安纳州 | 2007-05-15T14:14:00Z | 2007-05-15T14:14:00Z | ... | 
| 蒙大拿州 | 2007-05-18T14:20:00Z | 2007-05-18T14:20:00Z | ... | 
| 密歇根湖 | 2007-06-07T13:00:00Z | 2007-06-07T13: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_max(Version, *) by Fruit
输出
| 水果 | 版本 | 颜色 | 
|---|---|---|
| 苹果 | 1 | 红色 | 
| 香蕉 | 黄色 | |
| 梨 | 2 | 绿色 | 
比较 arg_max() 和 max() 的示例
arg_max() 函数不同于 max() 函数。 arg_max() 函数允许返回其他列以及最大值,max() 仅返回最大值本身。
以下示例使用 arg_max() 查找每个状态中发生直接死亡事件的最后一次,并显示所有列。 查询首先筛选事件,以仅包含至少有一个直接死亡的事件。 然后,查询将返回包含最新 (最大值) StartTime 的整个行。
StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *)
结果表返回包含指定表达式中最大值的行的所有列。
| 开始时间 | 结束时间 | EpisodeId | EventId | 状态 | 事件类型 | ... | 
|---|---|---|---|---|---|---|
| 2007-12-31T15:00:00Z | 2007-12-31T15:00:00 | 12688 | 69700 | 犹他州 | 雪崩 | ... | 
以下示例使用 max() 函数查找每次状态发生直接死亡的事件的最后一次,但仅返回 StartTime 的最大值。
StormEvents
| where DeathsDirect > 0
| summarize max(StartTime)
结果表返回 StartTime 的最大值,而不返回此记录的其他列。
| max_StartTime | 
|---|
| 2007-12-31T15:00:00Z |