में एकाधिक डुप्लिकेट पंक्तियां हटाएं मुझे यकीन है कि इससे पहले पूछा गया है, लेकिन मुझे इसे खोजने में मुश्किल हो रही थी।तालिका
मेरे पास एक तालिका में डुप्लिकेट के कई समूह हैं (एक के लिए 3 रिकॉर्ड, 2 के लिए 2, आदि) - एकाधिक पंक्तियां जहां 1 से अधिक मौजूद हैं।
नीचे क्या मैं उन्हें नष्ट करने के साथ आया है, लेकिन मैं फिर भी कई डुप्लिकेट के लिए स्क्रिप्ट चलाने के लिए देखते हैं है:
set rowcount 1
delete from Table
where code in (
select code from Table
group by code
having (count(code) > 1)
)
set rowcount 0
यह एक हद तक अच्छी तरह से काम करता है। मुझे डुप्लिकेट के प्रत्येक समूह के लिए इसे चलाने की ज़रूरत है, और फिर यह केवल 1 हटा देता है (जो मुझे अभी चाहिए)।
मैं आपकी सहायता/टिप्पणियों की सराहना करता हूं!
आप कौन से डुप्लीकेट रखना चाहते हैं - पहला/न्यूनतम, या नवीनतम/अधिकतम? और SQL सर्वर के किस संस्करण के लिए? –
या तो - अधिकतम आईडी काम करेगी। एसक्यूएल सर्वर 2000 (हाँ, मुझे पता है) – Dan
संभावित डुप्लिकेट [एसक्यूएल - मैं डुप्लिकेट पंक्तियों को कैसे हटा सकता हूं?] (Http://stackoverflow.com/questions/18932/sql-how-can-i-remove-duplicate-rows) –