Dużo informacji pod adresem http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/
To zawsze był irytujący problem w MySQL. Były sposoby na obejście tego, takie jak połączenie kilku pól razem (zaczynając od external_id), a następnie wybranie MAX() tego, a następnie ponowne rozbicie.
Proponuję użyć tabeli pochodnej. Pierwsza tabela (t1) pochodzi z prostego zapytania, w którym identyfikujesz MAX(external_id)
, następnie dołączasz do tego, aby uzyskać resztę danych.
TO JEST TYLKO JEŚLI external_id
JEST WYJĄTKOWY
SELECT
t1.group_id, some_table.id, some_table.mypath
FROM
(
SELECT group_id, MAX(external_id) AS external_id
FROM some_table
GROUP BY group_id
) as t1
INNER JOIN
sometable ON t1.external_id = sometable.external_id
WHERE ...