Выбрать по одной строке каждой группы - 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 для соответствующей строки с максимальной датой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы