В современных версиях баз данных проблема решается при помощи WINDOW FUNCTIONS:
SELECT
ID,
NAME,
VALUE
FROM (
SELECT
ID,
NAME,
VALUE,
ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY ID DESC) RN
FROM Users
) SortedUsers
WHERE RN = 1;
[ссылка заблокирована по решению администрации проекта]
ID,NAME,VALUE
Поле VALUE - НЕ уникально
Необходимо вывести записи для каждого NAME, с самым большим ID.
Т. е.
Есть записи
1 Иванов 250
2 Петров 100
3 Иванов 100
4 Петров 500
Необходимо вывести:
3 Иванов 100
4 Петров 500
(Т. е. для каждой фамилии необходимо найти самый большой ID)