PostgreSQL функция min

В этом учебном пособии вы узнаете, как использовать PostgreSQL функцию min с синтаксисом и примерами.

Описание

Функция min в PostgreSQL возвращает минимальное значение выражения.

Синтаксис

Синтаксис функции min в PostgreSQL:

SELECT min(aggregate_expression)
FROM tables
[WHERE conditions];

Или синтаксис функции min при группировке результатов по одному или нескольким столбцам:

SELECT expression1, expression2,... expression_n,
min(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2,... expression_n;

Параметры или аргументы

expression1, expression2,... expression_n
Выражения, которые не заключены в функцию min и должны быть включены в операторе GROUP BY в конце SQL-запроса.
aggregate_expression
Это столбец или выражение, из которого будет возвращено минимальное значение.
tables
Таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.
WHERE conditions
Необязательный. Это условия, которые должны быть соблюдены для выбора записей.

Применение

Функция min может быть использована в следующих версиях PostgreSQL:

  • PostgreSQL 11, PostgreSQL 10, PostgreSQL 9.6, PostgreSQL 9.5, PostgreSQL 9.4, PostgreSQL 9.3, PostgreSQL 9.2, PostgreSQL 9.1, PostgreSQL 9.0, PostgreSQL 8.4

Пример - с одним выражением

Рассмотрим некоторые примеры функций min, чтобы понять, как использовать функцию min в PostgreSQL
Например, вы можете узнать, как минимальное знаячение quantity в таблице inventory.

В этом примере функции min мы назвали выражение min(quantity) как "Lowest Quantity". В результате, "Lowest Quantity" будет отображаться как имя поля при возвращении набора результатов.

Пример - использование GROUP BY

В некоторых случаях вам потребуется использовать оператор GROUP BY с функцией min.
Например, вы также можете использовать функцию min для возврата значений поля department (отдела) и min(quantity) (минимального количества в отделе) из таблицы inventory.

Поскольку в вашем операторе SELECT указан один столбец, который не инкапсулирован в функции min, вы должны использовать оператор GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.