SQL में डुप्लिकेट मानों से निपटना एक बोझिल कार्य हो सकता है। लेकिन डरें नहीं, यह मार्गदर्शिका आपके बोझ को कम करने के लिए है।

डेटा सभी आकारों और रूपों में आता है, लेकिन डुप्लिकेट रिकॉर्ड हर डेटा प्रारूप का एक प्रमुख हिस्सा हैं। चाहे वेब-आधारित डेटा से निपटना हो या बस बिक्री डेटा के एक ट्रक के माध्यम से नेविगेट करना हो, यदि आपके पास डुप्लिकेट मान हैं तो आपका विश्लेषण ख़राब हो जाएगा।

क्या आप अपने नंबरों को समझने और अपने डेटा स्टैक पर लंबी क्वेरीज़ करने के लिए SQL का उपयोग करते हैं? यदि हां, तो SQL डुप्लिकेट को प्रबंधित करने पर यह मार्गदर्शिका आपके लिए अत्यंत आनंददायक होगी।

यहां कुछ अलग-अलग तरीके दिए गए हैं जिनका उपयोग आप SQL का उपयोग करके डुप्लिकेट को प्रबंधित करने के लिए कर सकते हैं।

1. फ़ंक्शन द्वारा समूह का उपयोग करके डुप्लिकेट की गिनती करना

SQL एक बहुआयामी प्रोग्रामिंग भाषा है जो गणनाओं को सरल बनाने के लिए विभिन्न फ़ंक्शन प्रदान करती है। यदि आपके पास एसक्यूएल में एकत्रीकरण कार्यों के साथ पर्याप्त अनुभव है, तो आप पहले से ही इससे परिचित हो सकते हैं फ़ंक्शन के अनुसार समूह बनाएं और इसका उपयोग किस लिए किया जा सकता है.

instagram viewer

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

परिदृश्य के आधार पर, आप डुप्लिकेट ढूंढ सकते हैं द्वारा समूह बनाएं एक कॉलम और एकाधिक कॉलम के भीतर कार्य करें।

एक। डुप्लीकेट को एक कॉलम में गिनें

मान लीजिए आपके पास दो कॉलम वाली निम्नलिखित डेटा तालिका है: उत्पाद आयडी और आदेश.

उत्पाद आयडी

आदेश

2

7

2

8

2

10

9

6

10

1

10

5

12

5

12

12

12

7

14

1

14

1

47

4

47

4

डुप्लिकेट उत्पाद आईडी ढूंढने के लिए, आप इसका उपयोग कर सकते हैं द्वारा समूह बनाएं फ़ंक्शन और रखना एकत्रित मानों को फ़िल्टर करने के लिए खंड इस प्रकार है:

चुनना उत्पाद आयडी, गिनती करना(उत्पाद आयडी) जैसा कुल संख्या

sahil.product_dups से

उत्पाद द्वारा समूह

गिनती (उत्पाद) > 1 होना

उत्पाद द्वारा आदेश;

एक सामान्य SQL कथन की तरह, आपको उन कॉलमों को परिभाषित करके शुरू करना होगा जिन्हें आप अंतिम परिणाम में प्रदर्शित करना चाहते हैं। इस मामले में, हम डुप्लिकेट मानों की संख्या प्रदर्शित करना चाहते हैं उत्पाद आयडी कॉलम।

पहले खंड में, परिभाषित करें उत्पाद आयडी के अंदर कॉलम चुनना कथन। गिनती करना फ़ंक्शन का अनुसरण करता है उत्पाद आयडी संदर्भ ताकि SQL आपकी क्वेरी के उद्देश्य को समझ सके।

इसके बाद, का उपयोग करके स्रोत तालिका को परिभाषित करें से खंड. तब से गिनती करना एक एकत्रीकरण फ़ंक्शन है, आपको इसका उपयोग करने की आवश्यकता है द्वारा समूह बनाएं सभी समान मानों को समूहीकृत करने का कार्य।

याद रखें, विचार डुप्लिकेट मानों को सूचीबद्ध करने का है उत्पाद आयडी कॉलम। ऐसा करने के लिए, आपको गिनती को फ़िल्टर करना होगा और कॉलम में एक से अधिक बार होने वाले मानों को प्रदर्शित करना होगा। रखना खंड एकत्रित डेटा को फ़िल्टर करता है; आप शर्त का उपयोग कर सकते हैं, यानी, गिनती (उत्पाद) >1, वांछित परिणाम प्रदर्शित करने के लिए.

अंततः द्वारा आदेश खंड अंतिम परिणामों को आरोही क्रम में क्रमबद्ध करता है।

आउटपुट इस प्रकार है:

बी। एकाधिक कॉलमों में डुप्लिकेट गिनें

जब आप कई कॉलमों में डुप्लिकेट की गिनती करना चाहते हैं, लेकिन कई SQL क्वेरी नहीं लिखना चाहते हैं, तो आप कुछ बदलावों के साथ उपरोक्त कोड का विस्तार कर सकते हैं। उदाहरण के लिए, यदि आप एकाधिक कॉलम में डुप्लिकेट पंक्तियाँ प्रदर्शित करना चाहते हैं, तो आप निम्न कोड का उपयोग कर सकते हैं:

चुनना उत्पाद, आदेश, गिनती करना(*) जैसा कुल संख्या

sahil.product_dups से

उत्पाद, ऑर्डर के आधार पर समूह बनाएं

गिनती (उत्पाद) > 1 होना

उत्पाद द्वारा आदेश;

आउटपुट में, आप देखेंगे कि केवल दो पंक्तियाँ प्रदर्शित होती हैं। जब आप क्वेरी में बदलाव करते हैं और दोनों कॉलमों का संदर्भ जोड़ते हैं चुनना कथन, आपको डुप्लिकेट मानों के साथ मेल खाने वाली पंक्तियों की गिनती मिलती है।

बदले में गिनती (स्तंभ) फ़ंक्शन, आपको पास करना होगा गिनती करना(*) डुप्लिकेट पंक्तियाँ प्राप्त करने के लिए फ़ंक्शन। * फ़ंक्शन सभी पंक्तियों के माध्यम से टॉगल करता है और व्यक्तिगत डुप्लिकेट मानों के बजाय डुप्लिकेट पंक्तियों की तलाश करता है।

आउटपुट नीचे दिखाया गया है:

उत्पाद आईडी 14 और 47 के साथ संबंधित पंक्तियाँ प्रदर्शित की जाती हैं क्योंकि ऑर्डर मान समान हैं।

2. row_number() फ़ंक्शन के साथ डुप्लिकेट को फ़्लैग करना

जब द्वारा समूह बनाएं और रखना संयोजन किसी तालिका के भीतर डुप्लिकेट को ढूंढने और फ़्लैग करने का सबसे आसान तरीका है, इसका उपयोग करके डुप्लिकेट ढूंढने का एक वैकल्पिक तरीका है पंक्ति नंबर() समारोह। पंक्ति नंबर() फ़ंक्शन का एक हिस्सा है SQL विंडो फ़ंक्शंस श्रेणी और आपके प्रश्नों को कुशलतापूर्वक संसाधित करने के लिए आवश्यक है।

यहां बताया गया है कि आप इसका उपयोग करके डुप्लिकेट को कैसे फ़्लैग कर सकते हैं पंक्ति नंबर() समारोह:

चुनना उत्पाद, आदेश, 

row_number() ऊपर (productid द्वारा productid ऑर्डर द्वारा विभाजन) sno के रूप में

sahil.product_dups से;

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

यदि आप इसका उपयोग नहीं करते हैं PARTITION कीवर्ड, आपके पास सभी उत्पाद आईडी के लिए एक अद्वितीय सीरियल नंबर होगा, जो आपके उद्देश्य के अनुरूप नहीं होगा।

द्वारा आदेश सॉर्टिंग ऑर्डर को परिभाषित करते समय विभाजन अनुभाग के भीतर खंड कार्यात्मक है। आप आरोही (डिफ़ॉल्ट) और अवरोही क्रम के बीच चयन कर सकते हैं।

अंत में, आप बाद में फ़िल्टर करना आसान बनाने के लिए (यदि आवश्यक हो) कॉलम को एक उपनाम निर्दिष्ट कर सकते हैं।

3. SQL तालिका से डुप्लिकेट पंक्तियाँ हटाना

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

एक। विशिष्ट कीवर्ड का उपयोग करना

अलग तालिका में डुप्लिकेट मानों को हटाने के लिए कीवर्ड संभवतः सबसे आम और अक्सर उपयोग किया जाने वाला SQL फ़ंक्शन है। आप एक बार में एक ही कॉलम या यहां तक ​​कि डुप्लिकेट पंक्तियों से डुप्लिकेट हटा सकते हैं।

यहां बताया गया है कि आप एकल कॉलम से डुप्लिकेट कैसे हटा सकते हैं:

चुननाअलग उत्पाद आयडी से sahil.product_dups;

आउटपुट तालिका से सभी अद्वितीय उत्पाद आईडी की एक सूची लौटाता है।

डुप्लिकेट पंक्तियों को हटाने के लिए, आप उपरोक्त कोड को इस प्रकार बदल सकते हैं:

चुननाअलग * से sahil.product_dups;

आउटपुट तालिका से सभी अद्वितीय पंक्तियों की एक सूची लौटाता है। आउटपुट को देखते हुए, आप देखेंगे कि उत्पाद आईडी 14 और 47 अंतिम परिणाम तालिका में केवल एक बार दिखाई देते हैं।

बी। कॉमन टेबल एक्सप्रेशन (सीटीई) विधि का उपयोग करना

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

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

साथ सीटीईप्रोडक्ट्स जैसा

(चुनना उत्पाद, आदेश,

row_number() ऊपर (productid द्वारा productid ऑर्डर द्वारा विभाजन) sno के रूप में

साहिल.प्रोडक्ट_डुप्स से)

चुनना * से सीटीईप्रोडक्ट्स

जहां स्नो = 1;

आप इसका उपयोग करके CTE फ़ंक्शन को प्रारंभ कर सकते हैं साथ कीवर्ड; के बाद अस्थायी वर्चुअल तालिका का नाम परिभाषित करें साथ कीवर्ड. तालिका के मानों को फ़िल्टर करते समय CTE तालिका संदर्भ उपयोगी होता है।

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

अंत में, नव निर्मित को फ़िल्टर करें स्नो अंतिम खंड में दूसरे के साथ कॉलम चुनना कथन। अंतिम आउटपुट में अद्वितीय मान प्राप्त करने के लिए इस फ़िल्टर को 1 पर सेट करें।

SQL का आसान तरीके से उपयोग करना सीखें

रिलेशनल डेटाबेस को क्वेरी करने और उपयोग करने की अपनी सहज क्षमता के कारण SQL और इसके वेरिएंट शहर में चर्चा का विषय बन गए हैं। सरल प्रश्न लिखने से लेकर उप-प्रश्नों के साथ विस्तृत विश्लेषण करने तक, इस भाषा में सबकुछ है।

हालाँकि, कोई भी प्रश्न लिखने से पहले, आपको अपने कौशल को निखारना होगा और खुद को एक कुशल कोडर बनाने के लिए कोड को समझना होगा। आप अपने ज्ञान को खेलों में लागू करके मज़ेदार तरीके से SQL सीख सकते हैं। अपने कोड में थोड़ा मज़ा जोड़कर कुछ फैंसी कोडिंग बारीकियां सीखें।