在數據表中尋找最大化指定表達式的數據列。 它會傳回輸入數據表或指定數據行的所有數據行。
注意
此函式會與 summarize 運算子搭配使用。
已被取代的別名: argmax()
語法
arg_max
(
ExprToMaximize,* | ExprToReturn [, ...])
深入瞭解 語法慣例。
參數
| 姓名 | 類型 | 必要 | 描述 |
|---|---|---|---|
| ExprToMaximize | string |
✔️ | 決定最大值的表達式。 |
| ExprToReturn | string |
✔️ | 表達式會從具有exprToMaximize* 傳回所有數據行。 |
傳回
傳回數據表中的數據列,將指定的表達式最大化
提示
若要檢視最大值,請使用 max() 函式。
範例
一般範例
下列範例會尋找每個狀態中 Storm 事件的最大緯度。
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 | FREMONT (費里蒙特) |
| 西維吉尼亞州 | 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 |