argMax

Calculates the arg value for a maximum val value. If there are several different values of arg for maximum values of val, returns the first of these values encountered.

Tuple version of this function will return the tuple with the maximum val value. It is convenient for use with SimpleAggregateFunction.

Syntax

  1. argMax(arg, val)

or

  1. argMax(tuple(arg, val))

Arguments

  • arg — Argument.
  • val — Value.

Returned value

  • arg value that corresponds to maximum val value.

Type: matches arg type.

For tuple in the input:

  • Tuple (arg, val), where val is the maximum value and arg is a corresponding value.

Type: Tuple.

Example

Input table:

  1. ┌─user─────┬─salary─┐
  2. director 5000
  3. manager 3000
  4. worker 1000
  5. └──────────┴────────┘

Query:

  1. SELECT argMax(user, salary), argMax(tuple(user, salary), salary), argMax(tuple(user, salary)) FROM salary;

Result:

  1. ┌─argMax(user, salary)─┬─argMax(tuple(user, salary), salary)─┬─argMax(tuple(user, salary))─┐
  2. director ('director',5000) ('director',5000)
  3. └──────────────────────┴─────────────────────────────────────┴─────────────────────────────┘

Original article