argmax

argmax, aggregator

def process argmax(key: number, value: any): any

Returns the item of value corresponding to the maximum value of key. If multiple rows have the same maximum key value, one is chosen arbitrarily.

Examples

Basic usage

table T = with
  [| as Product, as Price, as Weight |]
  [| "Widget A", 100,    2.5         |]
  [| "Widget B", 150,    1.8         |]
  [| "Widget C", 75,     3.2         |]

mostExpensiveProduct = argmax(T.Price, T.Product)
heaviestProduct = argmax(T.Weight, T.Product)

show summary "Product Analysis" with
  mostExpensiveProduct as "Most Expensive Product"
  heaviestProduct as "Heaviest Product"

This produces:

Most Expensive Product Heaviest Product
Widget B Widget C

Remarks

When multiple rows share the same T.A value, argmax chooses the corresponding T.B value arbitrarily. Since argmax works as a sequential scan over the table, reordering the rows may lead to different outputs in cases of ties.

See also

User Contributed Notes
0 notes + add a note