ठीक है, आप अपने प्रश्न का उत्तर देते हैं। ऐसा लगता है कि आप max(id)
चाहते हैं :
SELECT email, COUNT(email) AS occurences, max(id)
FROM wineries
GROUP BY email
HAVING (COUNT(email) > 1);
आप कथन का उपयोग करके अन्य को हटा सकते हैं। join
with के साथ मिटाएं एक पेचीदा वाक्य-विन्यास है जहाँ आपको पहले तालिका का नाम सूचीबद्ध करना होता है और फिर 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
)