Как вывести максимальное значение в sql
Перейти к содержимому

Как вывести максимальное значение в sql

  • автор:

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 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *