arg_min() (aggregation function)

Finds a row in the group that minimizes ExprToMinimize.

Note

This function is used in conjunction with the summarize operator.

Syntax

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

Arguments

Name Type Required Description
ExprToMinimize string Expression used for aggregation calculation.
ExprToReturn string Expression used for returning the value when ExprToMinimize is minimum. Use a wildcard (*) to return all columns of the input table.

Null handling

When ExprToMinimize is null for all rows in a group, one row in the group is picked. Otherwise, rows where ExprToMinimize is null are ignored.

Returns

Returns a row in the group that minimizes ExprToMinimize, and the value of ExprToReturn. Use or * to return the entire row.

Examples

The following examples demonstrate how to use this function.

Example 1

Find the northern most location of a storm event in each state.

[Click to run query]

StormEvents 
| summarize arg_min(BeginLat, BeginLocation) by State

Results

The results table shown includes only the first 10 rows.

State BeginLat BeginLocation
AMERICAN SAMOA -14.3 PAGO PAGO
CALIFORNIA 32.5709 NESTOR
MINNESOTA 43.5 BIGELOW
WASHINGTON 45.58 WASHOUGAL
GEORGIA 30.67 FARGO
ILLINOIS 37 CAIRO
FLORIDA 24.6611 SUGARLOAF KEY
KENTUCKY 36.5 HAZEL
TEXAS 25.92 BROWNSVILLE
OHIO 38.42 SOUTH PT
... ... ...

Example 2

Find the first time an event with a direct death happened in each state showing all of the columns.

[Click to run query]

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

Results

The results table shown includes only the first 10 rows and first 3 columns.

State StartTime EndTime ...
INDIANA 2007-01-01T00:00:00Z 2007-01-22T18:49:00Z ...
FLORIDA 2007-01-03T10:55:00Z 2007-01-03T10:55:00Z ...
NEVADA 2007-01-04T09:00:00Z 2007-01-05T14:00:00Z ...
LOUISIANA 2007-01-04T15:45:00Z 2007-01-04T15:52:00Z ...
WASHINGTON 2007-01-09T17:00:00Z 2007-01-09T18:00:00Z ...
CALIFORNIA 2007-01-11T22:00:00Z 2007-01-24T10:00:00Z ...
OKLAHOMA 2007-01-12T00:00:00Z 2007-01-18T23:59:00Z ...
MISSOURI 2007-01-13T03:00:00Z 2007-01-13T08:30:00Z ...
TEXAS 2007-01-13T10:30:00Z 2007-01-13T14:30:00Z ...
ARKANSAS 2007-01-14T03:00:00Z 2007-01-14T03:00:00Z ...
... ... ... ...

Example 3

The following example demonstrates null handling.

[Click to run query]

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

Results

Fruit Version Color
Apple 1 Red
Banana Yellow
Pear 1 Brown