Aggregates Aggregate

arg_min()

Finds the row with the minimum val. Calculates the non-NULL arg expression at that row.

Arguments & returns

92 overloads

arg_min(arg, val)

Aggregate
Overload link argval Returns
#01 ANYANY ANY
#02 ANYBIGINT ANY
#03 ANYBLOB ANY
#04 ANYDATE ANY
#05 ANYDOUBLE ANY
#06 ANYHUGEINT ANY
#07 ANYINTEGER ANY
#08 ANYTIMESTAMP ANY
#09 ANYTIMESTAMP WITH TIME ZONE ANY
#10 ANYVARCHAR ANY
#11 BIGINTBIGINT BIGINT
#12 BIGINTBLOB BIGINT
#13 BIGINTDATE BIGINT
#14 BIGINTDOUBLE BIGINT
#15 BIGINTHUGEINT BIGINT
#16 BIGINTINTEGER BIGINT
#17 BIGINTTIMESTAMP BIGINT
#18 BIGINTTIMESTAMP WITH TIME ZONE BIGINT
#19 BIGINTVARCHAR BIGINT
#20 BLOBBIGINT BLOB
#21 BLOBBLOB BLOB
#22 BLOBDATE BLOB
#23 BLOBDOUBLE BLOB
#24 BLOBHUGEINT BLOB
#25 BLOBINTEGER BLOB
#26 BLOBTIMESTAMP BLOB
#27 BLOBTIMESTAMP WITH TIME ZONE BLOB
#28 BLOBVARCHAR BLOB
#29 DATEBIGINT DATE
#30 DATEBLOB DATE
#31 DATEDATE DATE
#32 DATEDOUBLE DATE
#33 DATEHUGEINT DATE
#34 DATEINTEGER DATE
#35 DATETIMESTAMP DATE
#36 DATETIMESTAMP WITH TIME ZONE DATE
#37 DATEVARCHAR DATE
#38 DECIMALBIGINT DECIMAL
#39 DECIMALBLOB DECIMAL
#40 DECIMALDATE DECIMAL
#41 DECIMALDOUBLE DECIMAL
#42 DECIMALHUGEINT DECIMAL
#43 DECIMALINTEGER DECIMAL
#44 DECIMALTIMESTAMP DECIMAL
#45 DECIMALTIMESTAMP WITH TIME ZONE DECIMAL
#46 DECIMALVARCHAR DECIMAL
#47 DOUBLEBIGINT DOUBLE
#48 DOUBLEBLOB DOUBLE
#49 DOUBLEDATE DOUBLE
#50 DOUBLEDOUBLE DOUBLE
#51 DOUBLEHUGEINT DOUBLE
#52 DOUBLEINTEGER DOUBLE
#53 DOUBLETIMESTAMP DOUBLE
#54 DOUBLETIMESTAMP WITH TIME ZONE DOUBLE
#55 DOUBLEVARCHAR DOUBLE
#56 INTEGERBIGINT INTEGER
#57 INTEGERBLOB INTEGER
#58 INTEGERDATE INTEGER
#59 INTEGERDOUBLE INTEGER
#60 INTEGERHUGEINT INTEGER
#61 INTEGERINTEGER INTEGER
#62 INTEGERTIMESTAMP INTEGER
#63 INTEGERTIMESTAMP WITH TIME ZONE INTEGER
#64 INTEGERVARCHAR INTEGER
#65 TIMESTAMP WITH TIME ZONEBIGINT TIMESTAMP WITH TIME ZONE
#66 TIMESTAMP WITH TIME ZONEBLOB TIMESTAMP WITH TIME ZONE
#67 TIMESTAMP WITH TIME ZONEDATE TIMESTAMP WITH TIME ZONE
#68 TIMESTAMP WITH TIME ZONEDOUBLE TIMESTAMP WITH TIME ZONE
#69 TIMESTAMP WITH TIME ZONEHUGEINT TIMESTAMP WITH TIME ZONE
#70 TIMESTAMP WITH TIME ZONEINTEGER TIMESTAMP WITH TIME ZONE
#71 TIMESTAMP WITH TIME ZONETIMESTAMP TIMESTAMP WITH TIME ZONE
#72 TIMESTAMP WITH TIME ZONETIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE
#73 TIMESTAMP WITH TIME ZONEVARCHAR TIMESTAMP WITH TIME ZONE
#74 TIMESTAMPBIGINT TIMESTAMP
#75 TIMESTAMPBLOB TIMESTAMP
#76 TIMESTAMPDATE TIMESTAMP
#77 TIMESTAMPDOUBLE TIMESTAMP
#78 TIMESTAMPHUGEINT TIMESTAMP
#79 TIMESTAMPINTEGER TIMESTAMP
#80 TIMESTAMPTIMESTAMP TIMESTAMP
#81 TIMESTAMPTIMESTAMP WITH TIME ZONE TIMESTAMP
#82 TIMESTAMPVARCHAR TIMESTAMP
#83 VARCHARBIGINT VARCHAR
#84 VARCHARBLOB VARCHAR
#85 VARCHARDATE VARCHAR
#86 VARCHARDOUBLE VARCHAR
#87 VARCHARHUGEINT VARCHAR
#88 VARCHARINTEGER VARCHAR
#89 VARCHARTIMESTAMP VARCHAR
#90 VARCHARTIMESTAMP WITH TIME ZONE VARCHAR
#91 VARCHARVARCHAR VARCHAR

arg_min(arg, val, col2)

Aggregate
Overload link argvalcol2 Returns
#92 ANYANYBIGINT ANY[]

Example

arg_min example
SQL
Haybarn WASM 1.5.5-rc3 · In your browser

Engine example with sample data · Run to view results.

Catalog examples

SELECT
  arg_min(A, B);

In other engines

BigQuerymin_by()

SELECT MIN_BY(product, price) FROM table1
In DuckDB
SELECT ARG_MIN(product, price) FROM table1

SQLGlot example ↗

Prestomin_by()

SELECT MIN_BY(a.id, a.timestamp, 3) FROM a
In DuckDB
SELECT ARG_MIN(a.id, a.timestamp, 3) FROM a

SQLGlot example ↗

Snowflakemin_by()

SELECT MIN_BY(a, b) FROM t
In DuckDB
SELECT ARG_MIN(a, b) FROM t

SQLGlot example ↗