Е, ти отговаряш на въпроса си. Изглежда искате max(id)
:
SELECT email, COUNT(email) AS occurences, max(id)
FROM wineries
GROUP BY email
HAVING (COUNT(email) > 1);
Можете да изтриете останалите с помощта на изявлението. Изтрийте с join
има сложен синтаксис, при който първо трябва да посочите името на таблицата и след това да посочите from
клауза със съединението:
delete wineries
from wineries join
(select email, max(id) as maxid
from wineries
group by email
having count(*) > 1
) we
on we.email = wineries.email and
wineries.id < we.maxid;
Или напишете това като exists
клауза:
delete from wineries
where exists (select 1
from (select email, max(id) as maxid
from wineries
group by email
) we
where we.email = wineries.email and wineries.id < we.maxid
)