Utilizzando una sottoquery, puoi ottenere l'id
più alto per ogni nome, quindi seleziona il resto delle righe in base a quello:
SELECT * FROM table
WHERE id IN (
SELECT MAX(id) FROM table GROUP BY name
)
Se preferisci, usa MIN(id)
per ottenere il primo record per ogni nome invece dell'ultimo.
Può anche essere fatto con un INNER JOIN
contro la sottoquery. A tal fine, le prestazioni dovrebbero essere simili e, a volte, è necessario unirti a due colonne dalla sottoquery.
SELECT
table.*
FROM
table
INNER JOIN (
SELECT MAX(id) AS id FROM table GROUP BY name
) maxid ON table.id = maxid.id