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


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

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

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

Примечание.

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

Устаревшие псевдонимы: argmin()

Синтаксис

arg_min ( ExprToMinimize,* | ExprToReturn [, ...])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
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
CALIFORNIA 32.5709 НЕСТОР
МИННЕСОТА 43,5 БИГЕЛОУ
ВАШИНГТОН 45.58 WASHOUGAL
ДЖОРДЖИЯ 30.67 ФАРГО
ИЛЛИНОЙС 37 КАИР
FLORIDA 24.6611 КЛЮЧ SUGARLOAF
KENTUCKY 36,5 ОРЕШНИК
TEXAS 25.92 БРАУНСВИЛЛ
OHIO 38.42 SOUTH PT
... ... ...

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

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

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

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

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

Штат Время начала EndTime ...
ИНДИАНА 2007-01-01T00:00:00Z 2007-01-22T18:49:00Z ...
FLORIDA 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 ...
CALIFORNIA 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 ...
TEXAS 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

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

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

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

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

Примеры

arg_min()

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

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

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

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

Время начала EndTime EpisodeId EventId Штат EventType ...
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