В этом учебном пособии вы узнаете, как использовать PostgreSQL функцию max с синтаксисом и примерами.
Описание
Функция max PostgreSQL возвращает максимальное значение выражения.
Синтаксис
Синтаксис функции max в PostgreSQL:
FROM tables
[WHERE conditions];
Или синтаксис функции max при группировке результатов по одному или нескольким столбцам:
max(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2,... expression_n;
Параметры или аргументы
- expression1, expression2,... expression_n
- Выражения, которые не заключены в функцию max и должны быть включены в операторе GROUP BY в конце SQL-запроса.
- aggregate_expression
- Это столбец или выражение, из которого будет возвращено максимальное значение.
- tables
- Таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.
- WHERE conditions
- Необязательный. Это условия, которые должны быть соблюдены для выбора записей.
Применение
Функция max может использоваться в следующих версиях 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
Пример - с одним выражением
Рассмотрим некоторые примеры функций max, чтобы понять, как использовать функцию max в PostgreSQL.
Например, вы, возможно, захотите выбрать все записи с максимальным quantity из таблицы inventory, как max(quantity) AS "Highest Quantity".
1 2 |
SELECT max(quantity) AS "Highest Quantity" FROM inventory; |
В этом примере функции max мы добавили выражение max(quantity) AS "Highest Quantity". В результате "Highest Quantity" будет отображаться как имя поля при возвращении набора результатов.
Пример - использование GROUP BY
В некоторых случаях вам потребуется использовать оператор GROUP BY с функцией max.
Например, вы также можете использовать функцию max, чтобы вернуть department (отдел) и максимальное значение quantity из таблицы inventory.
1 2 3 |
SELECT department, max(quantity) AS "Highest Quantity" FROM inventory GROUP BY department; |
Поскольку в вашем операторе SELECT указан один столбец, который не инкапсулирован в функции max, необходимо использовать оператор GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.