GREATEST(...)
All functions > COMPARISON > GREATEST(...)
Returns the greatest (maximum) value from a list of arguments.
Syntax
GREATEST(expr, expr, ...)
Notes
- All arguments must be of the same or compatible types
- If any argument is NULL, the result is NULL
- For strings, uses lexicographic (dictionary) ordering
- For dates/timestamps, returns the latest date/time
- For ARRAY and ROW, uses the same ordering as
</>(lexicographic / field-by-field) - Can accept any number of arguments (not just two)
- Equivalent to finding the maximum value across multiple columns
- Opposite of LEAST function
Related Functions
Examples
Numeric values
FeatureQL
SELECT
-- Numeric maximum
f1 := GREATEST(1, 5, 3),
-- All same values
f2 := GREATEST(1, 1, 1),
-- Negative numbers
f3 := GREATEST(-5, -1, -10),
-- NULL input
f4 := GREATEST(NULL::BIGINT, 5, 3)
;Result
| f1 BIGINT | f2 BIGINT | f3 BIGINT | f4 BIGINT |
|---|---|---|---|
| 5 | 1 | -1 | NULL |
Other types
FeatureQL
SELECT
-- String maximum
f1 := GREATEST('apple', 'banana', 'cherry'),
-- Case sensitive
f2 := GREATEST('a', 'A'),
-- Decimal numbers
f3 := GREATEST(1.5, 2.3, 1.1)
;Result
| f1 VARCHAR | f2 VARCHAR | f3 VARCHAR |
|---|---|---|
| cherry | a | 2.3 |
Arrays and rows
FeatureQL
SELECT
-- Lexicographic max of two arrays
f1 := GREATEST(ARRAY(1, 1), ARRAY(1, 2))
;Result
| f1 ARRAY |
|---|
| [1, 2] |