सबसे पहले, आप प्रोग्रामनाम और कस्टआईडी फ़ील्ड में अनुक्रमणिका जोड़ने का प्रयास कर सकते हैं यदि आपके पास पहले से नहीं है।
डी-डुपिंग
आप ठगों की पहचान करने के लिए अपने रिकॉर्ड को समूहबद्ध कर सकते हैं, और जैसा कि आप ऐसा कर रहे हैं, प्रत्येक समूह के लिए न्यूनतम आईडी मान प्राप्त करें। फिर, बस उन सभी रिकॉर्ड्स को हटा दें जिनकी आईडी मिनीआईडी में से एक नहीं है।
इन-क्लॉज विधि
delete from
ProgramsList
where
id not in
(select min(id) as MinID
from ProgramsList
group by ProgramName, CustID)
जुड़ने की विधि
यदि प्रति समूह कई सदस्य हैं, तो आपको इसे एक से अधिक बार चलाना पड़ सकता है।
DELETE P
FROM ProgramsList as P
INNER JOIN
(select count(*) as Count, max(id) as MaxID
from ProgramsList
group by ProgramName, CustID) as A on A.MaxID = P.id
WHERE A.Count >= 2
कुछ लोगों के पास इन-क्लॉज के साथ प्रदर्शन संबंधी समस्याएं हैं, कुछ के पास नहीं है। यह आपके इंडेक्स और ऐसे पर बहुत निर्भर करता है। यदि एक बहुत धीमा है, तो दूसरे का प्रयास करें।
संबंधित:https://stackoverflow.com/a/4192849/127880