Как выбрать последнюю запись с group by?

Чтобы выбрать последнюю запись в каждой группе при использовании оператора GROUP BY в MySQL, можно воспользоваться двумя подходами.

Первый подход состоит в том, чтобы использовать временную таблицу, в которую будут вставляться последние записи для каждой группы, а затем выполнить запрос, выбирающий эти записи.

Пример кода:

CREATE TEMPORARY TABLE temp_table 
SELECT *
FROM your_table
ORDER BY id DESC;

SELECT *
FROM temp_table 
GROUP BY group_column;

В этом примере мы создаем временную таблицу temp_table, в которую копируем все строки из таблицы your_table, сортируем их в обратном порядке по полю id (предполагая, что id уникальный и возрастает с каждой новой записью). Затем выполняем запрос, выбирающий последнюю запись из каждой группы, используя оператор GROUP BY по полю group_column.

Второй подход состоит в использовании вложенного подзапроса с использованием функции MAX(), чтобы найти последнюю запись для каждой группы.

Пример кода:

SELECT *
FROM your_table t1
WHERE t1.id = (
  SELECT MAX(t2.id)
  FROM your_table t2
  WHERE t2.group_column = t1.group_column
);

В этом примере мы выбираем все записи из таблицы your_table, где id соответствует максимальному id для каждой группы, определенной полем group_column.

Данные подходы позволяют выбирать последние записи из каждой группы при использовании оператора GROUP BY в MySQL. Вам следует выбрать подход, который наилучшим образом подходит для вашей ситуации, учитывая объем данных, производительность и требования к вашей базе данных.