Chà, bạn đã trả lời được câu hỏi của mình. Có vẻ như bạn muốn max(id)
:
SELECT email, COUNT(email) AS occurences, max(id)
FROM wineries
GROUP BY email
HAVING (COUNT(email) > 1);
Bạn có thể xóa những người khác bằng cách sử dụng câu lệnh. Xóa bằng join
có một cú pháp phức tạp trong đó bạn phải liệt kê tên bảng trước rồi chỉ định from
mệnh đề với phép nối:
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;
Hoặc viết cái này dưới dạng exists
mệnh đề:
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
)