С помощта на подзаявка можете да получите най-високия id
за всяко име, след което изберете останалите редове въз основа на това:
SELECT * FROM table
WHERE id IN (
SELECT MAX(id) FROM table GROUP BY name
)
Ако предпочитате, използвайте MIN(id)
за да получите първия запис за всяко име вместо последния.
Може да се направи и с INNER JOIN
срещу подзаявката. За тази цел изпълнението трябва да е подобно и понякога трябва да се присъедините на двама колони от подзаявката.
SELECT
table.*
FROM
table
INNER JOIN (
SELECT MAX(id) AS id FROM table GROUP BY name
) maxid ON table.id = maxid.id