Для чего используется агрегатная функция MAX в SQL?

«Для чего используется агрегатная функция MAX в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функция MAX() — это агрегатная функция SQL, которая возвращает максимальное значение из набора строк указанного столбца.

Основное применение:

  • Нахождение наибольшего числового значения (цена, возраст, счет).
  • Определение самой поздней даты или времени.
  • Поиск последней строки в лексикографическом (алфавитном) порядке.

Синтаксис и примеры:

-- 1. Найти максимальную зарплату во всей таблице
SELECT MAX(salary) AS max_salary FROM employees;

-- 2. Найти последнюю дату заказа
SELECT MAX(order_date) AS latest_order FROM orders;

-- 3. Найти «максимальное» имя по алфавиту
SELECT MAX(first_name) FROM customers; -- Например, 'Zoe'

Использование с GROUP BY: Функция MAX() часто используется для нахождения максимума внутри каждой группы.

-- Найти максимальную зарплату в каждом отделе
SELECT department_id, MAX(salary) AS max_department_salary
FROM employees
GROUP BY department_id;

Важные особенности:

  • Игнорирует значения NULL (не учитывает их при поиске максимума).
  • Если все значения в столбце NULL, функция вернет NULL.
  • Может комбинироваться с другими агрегатными функциями (MIN, AVG, SUM, COUNT) в одном запросе.
  • Часто используется вместе с HAVING для фильтрации результатов группировки.
    -- Найти отделы, где максимальная зарплата превышает 100000
    SELECT department_id, MAX(salary)
    FROM employees
    GROUP BY department_id
    HAVING MAX(salary) > 100000;