Mycket information på http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/
Detta har alltid varit ett irriterande problem i MySQL. Det har funnits sätt att kringgå det, som att sammanfoga flera fält tillsammans (börjar med extern_id), och sedan välja MAX() för det och sedan bryta isär det igen.
Jag föreslår att du använder en härledd tabell. Den första tabellen (t1) härleds från en enkel fråga där du identifierar MAX(external_id)
, sedan går du med från det för att få resten av data.
DETTA ÄR ENDAST OM external_id
ÄR UNIK
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 ...