MAX is an aggregate function that evaluates the maximum of an expression over a set of rows.
See Aggregates (set functions) for more information about these functions.
MAX is allowed only on expressions that evaluate to indexable data types (specifically, those marked with a Y in the second table, "Comparisons allowed by Derby", in Data type assignments and comparison, sorting, and ordering). This means that MAX cannot be used with expressions that evaluate to BLOB, CLOB, LONG VARCHAR, LONG VARCHAR FOR BIT DATA, XML, or user-defined types.
MAX ( [ DISTINCT | ALL ] expression )
SELECT COUNT (DISTINCT flying_time), MAX (DISTINCT miles) FROM Flights
The expression can contain multiple column references or expressions, but it cannot contain another aggregate or subquery. It must evaluate to a built-in data type. You can therefore call methods that evaluate to built-in data types. (For example, a method that returns a java.lang.Integer or int evaluates to an INTEGER.) If an expression evaluates to NULL, the aggregate skips that value.
The type's comparison rules determine the maximum value. For CHAR and VARCHAR, the number of blank spaces at the end of the value can affect how MAX is evaluated. For example, if the values 'z' and 'z ' are both stored in a column, you cannot control which one will be returned as the maximum, because blank spaces are ignored for character comparisons.
The resulting data type is the same as the expression on which it operates (it will never overflow).
-- find the latest date in the FlightAvailability table SELECT MAX (flight_date) FROM FlightAvailability -- find the longest flight originating from each airport, -- but only when the longest flight is over 10 hours SELECT MAX(flying_time), orig_airport FROM Flights GROUP BY orig_airport HAVING MAX(flying_time) > 10