MySQL выбирает максимальную запись в группе по
Я пытаюсь создать запрос в таблице, которая содержит около 500 000 записей и около 50 или 60 столбцов. Мне нужно сопоставить эти записи по группам и выбрать максимальную запись в каждой группе.
Для упрощения задачи у меня есть следующая таблица
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
Простая группа по следующим
select * from temp GROUP BY group_id
который возвращается
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 2 | 1004 | 2 | b |
+----+-------------+----------+--------+
Хорошо, но не то, что я хочу. То, что я хочу, это полная запись для max enternal_id в каждой группе. Другими словами
+----+-------------+----------+--------+
| id | external_id | group_id | mypath |
+----+-------------+----------+--------+
| 1 | 1003 | 1 | a |
| 3 | 1005 | 2 | c |
+----+-------------+----------+--------+
Каким-то образом я хочу поместить здесь оператор max (external_id), чтобы отфильтровать то, что нужно, но пока все мое расследование не удалось. Некоторое руководство будет оценено. Важно, чтобы при возврате max (external_id) вся запись была выбрана, поскольку путь столбца отличается.