दिलचस्प पोस्ट
कस्टम शैलियों के साथ मैं डिफ़ॉल्ट PrimeFaces सीएसएस को ओवरराइड कैसे कर सकता हूं? एंज्युलर 2.0 के साथ गतिशील घटक को संकलित करने के लिए मैं गतिशील टेम्पलेट कैसे बना सकता हूं? गतिशील रूप से अंगुलर 2 में ईवेंट श्रोता जोड़ें मैं विंडोज पर कमांड लाइन से जावा प्रोग्राम कैसे चलाऊँ? MATLAB से अजगर समारोह को कॉल करें एक्सेंट / डायैरिटिक्स को जावास्क्रिप्ट में एक स्ट्रिंग में निकालें एक GPU मेमोरी की संपूर्णता को आबंटित करने से टेंस्फ्लो को कैसे रोकें? ExecuteReader को एक खुला और उपलब्ध कनेक्शन की आवश्यकता है। कनेक्शन का वर्तमान स्थिति कनेक्ट हो रहा है सी ++ 11 रिटर्न मूल्य अनुकूलन या कदम? मैं पायथन में एनएएन के लिए कैसे जांच सकता हूं? एक सरणी में सर्वोच्च घटना के साथ तत्व प्राप्त करें जावा एप्लिकेशन में दुर्भावनापूर्ण कोड के खिलाफ सैंडबॉक्स आप एक MySQL Datetime कॉलम के लिए एक डिफ़ॉल्ट मान कैसे सेट करते हैं? सार्वजनिक फ़ील्ड बनाम स्वचालित गुण PHP __get और __set जादू तरीकों

कुछ फ़ील्ड पर डुप्लिकेट ढूंढने के लिए कथन चुनें

क्या आप कई क्षेत्रों पर डुप्लिकेट खोजने के लिए एसक्यूएल स्टेटमेंट के साथ मेरी सहायता कर सकते हैं?

उदाहरण के लिए, छद्म कोड में:

select count(field1,field2,field3) from table where the combination of field1, field2, field3 occurs multiple times 

और उपरोक्त बयान से यदि कई घटनाएं हैं तो मैं पहले रिकॉर्ड को छोड़कर हर रिकॉर्ड का चयन करना चाहता हूं।

वेब के समाधान से एकत्रित समाधान "कुछ फ़ील्ड पर डुप्लिकेट ढूंढने के लिए कथन चुनें"

उन फ़ील्ड की सूची प्राप्त करने के लिए जिनमें कई रिकॉर्ड हैं, आप इसका उपयोग कर सकते हैं ..

 select field1,field2,field3, count(*) from table_name group by field1,field2,field3 having count(*) > 1 

पंक्तियों को हटाने के तरीके के बारे में अधिक जानकारी के लिए इस लिंक की जांच करें

http://support.microsoft.com/kb/139444

संपादित करें: जैसा अन्य उपयोगकर्ताओं ने उल्लेख किया है, जैसा कि ऊपर दिए गए लिंक में दिए गए दृष्टिकोण का उपयोग करने से पहले "पहली पंक्तियाँ" को परिभाषित करने का निर्णय लेने के लिए एक मानदंड होना चाहिए। इसके आधार पर आपको आवश्यक होने पर खंड और एक उप क्वेरी द्वारा आदेश का उपयोग करने की आवश्यकता होगी। यदि आप कुछ नमूना डेटा पोस्ट कर सकते हैं, तो यह वास्तव में मदद करेगा

आप "पहले एक" का उल्लेख करते हैं, इसलिए मैं मानता हूं कि आपके डेटा पर कुछ प्रकार के ऑर्डर किए गए हैं। मान लें कि आपके डेटा का क्रम कुछ फ़ील्ड ID

इस एसक्यूएल को आपको पहले एक के अलावा डुप्लिकेट प्रविष्टियाँ मिलनी चाहिए। यह मूल रूप से उन सभी पंक्तियों का चयन करता है जिसके लिए एक पंक्ति (ए) एक ही फ़ील्ड और (बी) निम्न आईडी मौजूद है। प्रदर्शन महान नहीं होगा, लेकिन यह आपकी समस्या को हल कर सकता है।

 SELECT A.ID, A.field1, A.field2, A.field3 FROM myTable A WHERE EXISTS (SELECT B.ID FROM myTable B WHERE B.field1 = A.field1 AND B.field2 = A.field2 AND B.field3 = A.field3 AND B.ID < A.ID) 

यह मुझे पसंद है कि SQL सर्वर 2005 के साथ एक मजेदार समाधान है मैं यह सोचने जा रहा हूं कि "पहले रिकॉर्ड को छोड़कर हर रिकॉर्ड के लिए", आपका मतलब है कि एक और "आईडी" कॉलम है जिसे हम यह पहचानने के लिए उपयोग कर सकते हैं कि कौन सी पंक्ति "पहले" है।

 SELECT id , field1 , field2 , field3 FROM ( SELECT id , field1 , field2 , field3 , RANK() OVER (PARTITION BY field1, field2, field3 ORDER BY id ASC) AS [rank] FROM table_name ) a WHERE [rank] > 1 

डुप्लिकेट वैल्यू देखने के लिए

 with MYCTE as ( select row_number() over ( partition by name order by name) rown, * from tmptest ) select * from MYCTE where rown <=1 

यदि आप SQL सर्वर 2005 या बाद का उपयोग कर रहे हैं (और आपके प्रश्न के लिए टैग SQL सर्वर 2008 को इंगित करता है), तो आप रैंकिंग फ़ंक्शंस का इस्तेमाल पहले एक के बाद डुप्लिकेट रिकॉर्ड्स लौटने के लिए कर सकते हैं यदि joins का उपयोग किसी कारण के लिए कम वांछनीय या अव्यावहारिक है। निम्न उदाहरण इस कार्रवाई में दिखाता है, जहां यह जांच की गई कॉलम में शून्य मानों के साथ काम करता है।

 create table Table1 ( Field1 int, Field2 int, Field3 int, Field4 int ) insert Table1 values (1,1,1,1) , (1,1,1,2) , (1,1,1,3) , (2,2,2,1) , (3,3,3,1) , (3,3,3,2) , (null, null, 2, 1) , (null, null, 2, 3) select * from (select Field1 , Field2 , Field3 , Field4 , row_number() over (partition by Field1 , Field2 , Field3 order by Field4) as occurrence from Table1) x where occurrence > 1 

इस उदाहरण को चलाने के बाद नोटिस कि हर "समूह" में से पहला रिकार्ड बाहर रखा गया है, और यह कि शून्य मानों के साथ रिकॉर्ड ठीक से नियंत्रित किया जाता है।

यदि आपके पास एक समूह के भीतर अभिलेखों के लिए एक कॉलम उपलब्ध नहीं है, तो आप क्रम-द्वारा कॉलम के रूप में विभाजन-प्रति कॉलम का उपयोग कर सकते हैं।

 CREATE TABLE #tmp ( sizeId Varchar(MAX) ) INSERT #tmp VALUES ('44'), ('44,45,46'), ('44,45,46'), ('44,45,46'), ('44,45,46'), ('44,45,46'), ('44,45,46') SELECT * FROM #tmp DECLARE @SqlStr VARCHAR(MAX) SELECT @SqlStr = STUFF((SELECT ',' + sizeId FROM #tmp ORDER BY sizeId FOR XML PATH('')), 1, 1, '') SELECT TOP 1 * FROM ( select items, count(*)AS Occurrence FROM dbo.Split(@SqlStr,',') group by items having count(*) > 1 )K ORDER BY K.Occurrence DESC