Поделиться через


arg_min() (агрегатная функция)

Область применения: ✅Microsoft Fabric

Находит строку в таблице, которая сводит к минимуму указанное выражение. Он возвращает все столбцы входной таблицы или указанные столбцы.

Примечание.

Эта функция используется в сочетании с оператором сводки.

Устаревшие псевдонимы: 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
АМЕРИКАНСКОЕ САМОА -14.3 PAGO PAGO
КАЛИФОРНИЯ 32.5709 НЕСТОР
МИННЕСОТА 43,5 БИГЕЛОУ
ВАШИНГТОН 45.58 WASHOUGAL
ДЖОРДЖИЯ 30.67 ФАРГО
ИЛЛИНОЙС 37 КАИР
ФЛОРИДА 24.6611 КЛЮЧ SUGARLOAF
КЕНТУККИ 36,5 ОРЕШНИК
ТЕХАС 25.92 БРАУНСВИЛЛ
ОГАЙО 38.42 SOUTH PT
... ... ...

Найдите первое событие с прямой смертью в каждом состоянии, показывающее все столбцы.

Запрос сначала фильтрует события, чтобы включить только те, где была по крайней мере одна прямая смерть. Затем запрос возвращает всю строку с наименьшим значением для StartTime.

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

Выходные данные

Показанная таблица результатов содержит только первые 10 строк и первые 3 столбца.

Штат Время начала Время завершения ...
ИНДИАНА 2007-01-01T00:00:00Z 2007-01-22T18:49:00Z ...
ФЛОРИДА 2007-01-03T10:55:00Z 2007-01-03T10:55:00Z ...
НЕВАДА 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 ...
КАЛИФОРНИЯ 2007-01-11T22:00:00Z 2007-01-24T10:00:00Z ...
ОКЛАХОМА 2007-01-12T00:00:00Z 2007-01-18T23:59:00Z ...
МИССУРИ 2007-01-13T03:00:00Z 2007-01-13T08:30:00Z ...
ТЕХАС 2007-01-13T10:30:00Z 2007-01-13T14:30:00Z ...
АРКАНЗАС 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

Выходные данные

Фрукт Версия Цвет
Яблоко 1 Красный
Банан Желтый
Груша 1 Коричневый

Сравнение с min()

Функция arg_min() отличается от функции min(). Функция arg_min() позволяет возвращать дополнительные столбцы вместе с минимальным значением, а min() возвращает только минимальное значение.

Примеры

В следующем примере используется arg_min() для поиска последнего события с прямой смертью в каждом состоянии, где отображаются все столбцы.

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

Таблица результатов возвращает все столбцы для строки, содержащей наименьшее значение в указанном выражении.

Время начала Время завершения EpisodeId EventId Штат Тип события ...
2007-01-01T00:00:00Z 2007-01-22T18:49:00Z 2408 11929 ИНДИАНА Наводнение ...

В следующем примере функция min() используется для поиска последнего события с прямой смертью в каждом состоянии, но возвращает только минимальное значение StartTime.

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

Таблица результатов возвращает наименьшее значение только в определенном столбце.

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