Выбрать по одной строке каждой группы - MySQL
Формулировка задачи:
привет,
в общем суть в чем, пусть у меня есть некая табличка (см. вложение)
мне нужно выбрать из подобной таблицы по одной строке, у которой дата для этой группы максимальна.
т.е. если я выбираю для конкретного пользователя выглядит это примерно так:
возможно ли такое написать одним запросом?
SELECT Top 1 Name, Datum FROM Person WHERE NAme = 'Ivanov' ORDER BY Datum DESC
Решение задачи: «Выбрать по одной строке каждой группы»
textual
Листинг программы
SELECT * FROM Person p INNER JOIN (SELECT MAX(Datum) AS Datum, Name FROM Person GROUP BY Name) s ON p.Datum = s.Datum
Объяснение кода листинга программы
В данном коде выполняется запрос к таблице Person
с использованием подзапроса. Подзапрос выбирает максимальную дату для каждого имени в таблице Person
. Затем основной запрос выбирает все строки из таблицы Person
, где дата соответствует максимальной дате для соответствующего имени, и объединяет их с результатами подзапроса. Результатом запроса будет одна строка для каждого имени в таблице Person
, содержащая все поля из таблицы Person
для соответствующей строки с максимальной датой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д