Последняя запись в группе SQL: заказ каждого клиента
Максимальная дата и строка с максимальной датой — разные результаты. Если нужны поля последнего заказа, одного MAX(order_date) недостаточно: нужно сохранить связь с исходной строкой.
Проверьте случай двух заказов в один день. Условие может требовать дополнительный ключ для однозначного выбора. Не объединяйте независимо максимальные значения разных столбцов: такая комбинация могла никогда не существовать в таблице.
Проверьте решение без регистрации. Объяснения и последовательная практика — в курсе «SQL с нуля: бесплатный курс с практикой».
Последний заказ каждого клиента
В таблицах хранится информация о клиентах и их заказах. Иногда нужно быстро понять, чем закончилось взаимодействие каждого клиента с магазином — то есть найти именно тот заказ, который был оформлен последним.
Напиши запрос, который для каждого клиента, совершившего хотя бы один заказ, определяет самый последний из них. Последним считается заказ с наибольшей датой order_date; если у клиента несколько заказов с одинаковой максимальной датой, из них выбирается тот, у которого больше order_id.
Запрос должен возвращать пять столбцов: customer_id, name, order_id, order_date и total_amount — ровно по одной строке на клиента. Итоговый результат упорядочивается по customer_id по возрастанию.
Пример
- Подготовка данных
INSERT INTO customers (customer_id, name) VALUES (1, 'Anna'), (2, 'Boris'), (3, 'Vera'); INSERT INTO orders (order_id, customer_id, order_date, total_amount) VALUES (101, 1, '2026-01-01', 100), (102, 1, '2026-01-05', 200), (103, 1, '2026-01-05', 250), (201, 2, '2026-01-03', 500);
- Вывод
1|Anna|103|2026-01-05|250 2|Boris|201|2026-01-03|500
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
