2016-01-06 9 views
6

मैं वर्तमान में मेल खाने वाले ग्राहकों का डेटाबेस साफ़ करने की कोशिश कर रहा हूं जो एक पूर्व कर्मचारी बनाया गया था। मैं ज्यादातर मुद्दों (मुख्य रूप से डुप्लिकेट) को समेकित और ठीक करने में सक्षम हूं, लेकिन मेरे पास डुप्लिकेट रिकॉर्ड वाले ग्राहकों के उदाहरण हैं क्योंकि वे कई क्षेत्रों की सदस्यता ले चुके हैं।एसक्यूएल समान तालिका से एक ही पंक्ति में समान रिकॉर्ड को मर्ज कैसे करें?

id  first  last address truck machinery gl ne nw 
------------------------------------------------------------------------ 
1  Chuck  G.... 12 Lorem 1      1 
2  Chuck  G.... 12 Lorem   1      1 
3  Chuck  G.... 12 Lorem   1     1 

और मैं विलय करना चाहते हैं: मुझे क्या करना चाहते हैं में 1.

यहाँ उन डुप्लिकेट रिकॉर्ड को मर्ज कर रहा है मर्ज करने के लिए एक नकली रिकॉर्ड का एक संशोधित वास्तविक उदाहरण है कि मैं चाहता हूँ है 1 रिकॉर्ड में 2, और हटाना सभी डुप्लिकेट (कुछ है 9 डुप्लिकेट करने के लिए) इस तरह:

id  first  last address truck machinery gl ne nw 
------------------------------------------------------------------------ 
1  Chuck  G.... 12 Lorem 1  1   1  1  1 
+0

क्या कुछ पंक्तियों में एक ही कॉलम में अलग-अलग मान होते हैं, उदाहरण के लिए मशीनरी = 1,2,3? कौन सा मूल्य चुना जाना चाहिए? – krokodilko

+0

इन मामलों में, यह हमेशा केवल '1' या न्यूल होगा। इसका उद्देश्य केवल यह परिभाषित करना है कि वे उस संस्करण की सदस्यता लेते हैं या नहीं। तो यदि डुप्लिकेट पंक्तियों में कहीं भी उस कॉलम में '1' मौजूद है, तो '1' का उपयोग किया जाना चाहिए। –

उत्तर

5

उपयोग Group By और Max/Min सकल

SELECT id, 
     first, 
     last, 
     address, 
     Max(truck)  AS truck, 
     Max(machinery) AS machinery, 
     Max(gl)  AS gl, 
     Max(ne)  AS ne, 
     Max(nw)  AS nw 
FROM yourtable 
GROUP BY id, 
      first, 
      last, 
      address 
+0

शानदार। बहुत आसन। इस तरह के चयन का उपयोग करके मैं बिना किसी डुप्लिकेट के ग्राहकों की एक नई सूची बनाने में सक्षम था, और सभी उपयुक्त डेटा विलय हो गए हैं। –

संबंधित मुद्दे