SQL функция MAX
В этом учебном материале вы узнаете, как использовать SQL функцию MAX с синтаксисом примерами.
Описание
SQL функция MAX используется для возврата максимального значения выражения в операторе SELECT.
Синтаксис
Синтаксис для функции MAX в SQL.
SELECT MAX(aggregate_expression)
FROM tables
[WHERE conditions];
Или синтаксис для функции MAX при группировке результатов по одному или нескольким столбцам.
SELECT expression1, expression2, . expression_n,
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 Необязательный. Это условия, которые должны быть выполнены для выбора записей
Пример — с одним выражение
Простейшим способом использования SQL функции MAX будет возвращение одного поля, которое вычисляет значение MAX.
Например, вы можете узнать максимальную зарплату всех сотрудников.
Функция SQL MAX()
Оператор SQL MAX() — функция возвращающая максимальное значение столбца таблицы.
Функция SQL MAX() имеет следующий синтаксис:
MAX(column_name)
Примеры оператора SQL MAX: Имеется следующая таблица Universities :
ID | UniversityName | Students | Faculties | Professores | Location | Site |
1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
5 | Higher School of Economics | 20335 | 12 | 1615 | Moscow | hse.ru |
6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 1: Используя оператор SQL MAX найти максимальное значение колонки Students:
SELECT MAX(Students) FROM Univerities
Пример 2: Используя оператор SQL MAX найти максимальное значение колонки Faculties, где расположение университета (Location) — Saint-Petersburg:
SELECT MAX(Faculties) FROM Universities WHERE Location = 'Saint-Petersburg'
Пример 3: Используя оператор SQL MAX найти университет (UniversityName) с наибольшим числом преподавателей (Professores):
SELECT UniversityName FROM University WHERE Professores = (SELECT MAX(Professores) FROM Universities)
Ответ: Moscow State University
MAX ФУНКЦИЯ
Oracle/PLSQL функция MAX возвращает максимальное значение выражения.
Синтаксис
Синтаксис Oracle/PLSQL функции MAX:
SELECT MAX(aggregate_expression)
FROM tables
[WHERE conditions];
ИЛИ синтаксис для функции MAX с группировкой результатов по одному или нескольким столбцам:
SELECT expression1, expression2, . expression_n,
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 можно использовать в следующих версиях Oracle/PLSQL:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Пример с единичным полем
Рассмотрим несколько примеров функции MAX и изучим, как использовать функцию MAX в Oracle/PLSQL.
Например, вы, возможно, пожелает узнать, какая максимальная зарплата всех employees (сотрудников).
Как выбрать записи с максимальным значением поля для параметра с группировкой?
Заказ считается в статусе, который был добавлен последним (поле time максимальное для данного order_id).
Не могу составит запрос, которые на вход получал бы статус, а на выходе заказы (orders) с данным статусом.
select max(os.time), os.orders from order_statuses os join orders o on os.orders = o.id where os.status = 'NEW' group by os.orders;
только мой возвращает последнее время, когда у заказа был статус ‘NEW’, а нужно заказы, у которых ‘NEW’ — последний статус.
- Вопрос задан более трёх лет назад
- 3808 просмотров