# MIN [Aggregate]

Returns the smallest value of an expression over a group of rows. The return value has the same type as the expression data type.

The `MIN`

analytic function differs from the aggregate function, in that it returns the minimum value of an expression over a group of rows within a window.

Aggregate functions `MIN`

and `MAX`

can operate with Boolean values. `MAX `

can act upon a Boolean data type or a value that can be implicitly converted to a Boolean. If at least one input value is true, `MAX`

returns `t`

(true). Otherwise, it returns `f`

(false). In the same scenario, `MIN`

returns `t`

(true) if all input values are true. Otherwise it returns `f`

.

## Behavior Type

## Syntax

`MIN ( expression )`

## Parameters

expression |
Any expression for which the minimum value is calculated, typically a column reference. |

## Examples

The following query returns the lowest salary from the `employee`

dimension table.

This example shows how you can query to return the lowest salary from the `employee`

dimension table.

=> SELECT MIN(annual_salary) AS lowest_paid FROM employee_dimension; lowest_paid ------------- 1200 (1 row)

The following example shows you the difference between the `MIN`

and `MAX`

aggregate functions when you use them with a Boolean value. The sample creates a table, adds two rows of data, and shows sample output for `MIN`

and `MAX`

.

=> CREATE TABLE min_max_functions (torf BOOL); => INSERT INTO min_max_functions VALUES (1); => INSERT INTO min_max_functions VALUES (0); => SELECT * FROM min_max_functions; torf ------ t f (2 rows) => SELECT min(torf) FROM min_max_functions; min ----- f (1 row) => SELECT max(torf) FROM min_max_functions; max ----- t (1 row)