arg_max() (агрегатная функция)
Область применения: ✅Microsoft Fabric✅✅
Находит строку в таблице, которая максимизирует указанное выражение. Он возвращает все столбцы входной таблицы или указанные столбцы.
Устаревшие псевдонимы: argmax()
Синтаксис
arg_max
(
ExprToMaximize,
* | ExprToReturn [,
...])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
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 |
RHODE ISLAND | 42 | WOONSOCKET |
ИНДИАНА | 41.73 | ФРИМОНТ |
ЗАПАДНАЯ ВИРДЖИНИЯ | 40.62 | ЧЕСТЕР |
ЮЖНАЯ КАРОЛИНА | 35.18 | LANDRUM |
TEXAS | 36.4607 | DARROUZETT |
... | ... | ... |
Найдите последнее событие с прямой смертью в каждом состоянии, где отображаются все столбцы.
Запрос сначала фильтрует события, чтобы включить только те, где была по крайней мере одна прямая смерть. Затем запрос возвращает всю строку с последними значениями StartTime.
StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *) by State
В таблице результатов отображаются только первые 10 строк и первые 3 столбца.
Штат | Время начала | EndTime | ... |
---|---|---|---|
ГУАМ | 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 | ... |
DELAWARE | 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
Выходные данные
Фрукт | Версия | Color |
---|---|---|
Apple | 1 | Красный |
Банан | Желтый | |
Груша | 2 | Зеленый |
Сравнение с max()
Функция arg_max() отличается от функции max(). Функция arg_max() позволяет возвращать дополнительные столбцы вместе с максимальным значением, а max() возвращает только максимальное значение.
Примеры
arg_max()
Найдите последнее событие с прямой смертью, отображая все столбцы в таблице.
Запрос сначала фильтрует события, чтобы включить только те, где была по крайней мере одна прямая смерть. Затем запрос возвращает всю строку с самым последним (максимумом) StartTime.
StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *)
Таблица результатов возвращает все столбцы для строки, содержащей наибольшее значение в указанном выражении.
Время начала | EndTime | EpisodeId | EventId | Штат | EventType | ... |
---|---|---|---|---|---|---|
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 |