Последняя операция клиента: почему MAX() недостаточно? — 25 июня 2026 г. в 08:40:01.901
Последняя операция клиента: почему MAX() недостаточно? Нужно получить последнюю операцию каждого клиента вместе с её типом и суммой. Таблица client_operations: Клиент 101 11 | 24.06 09:15 | purchase | 1200 12 | 24.06 16:40 | refund | -200 Клиент 102 21 | 24.06 12:00 | purchase | 500 22 | 24.06 12:00 | purchase | 700 Клиент 103 31 | 23.06 18:30 | purchase | 900 Первый вариант: SELECT client_id, MAX(operation_time) AS latest_time FROM client_operations GROUP BY client_id; Запрос найдёт максимальное время для каждого клиента. Но MAX() не выбирает автоматически остальные поля соответствующей строки: operation_id, operation_type и amount. Задача — вернуть ровно одну последнюю операцию каждого клиента со всеми полями. Дополнительное правило: если время совпадает, последней считаем запись с большим operation_id. Это условие мини-лабы, а не универсальное свойство идентификаторов. Вопросы: Какой запрос вы предложите? Что произойдёт без дополнительного критерия при одинаковом времени? Как изменится решение, если нужны все операции с максимальным временем? Подсказка: нужно не только вычислить максимальное значение, но и выбрать строку, которая занимает первое место внутри каждого клиента. Напишите запрос и укажите, как он обрабатывает одинаковое время. #УЦФОРС #SQL #PostgreSQL #АналитикаДанных #ОконныеФункции

