Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL में DISTINCT बनाम GROUP BY चुनें?

<घंटा/>

अलग-अलग मान देने के लिए SELECT DISTINCT का उपयोग किया जा सकता है। डुप्लीकेट रिकॉर्ड्स को हटाने के लिए इसका इस्तेमाल करें और इसका इस्तेमाल एग्रीगेट फंक्शन के साथ भी किया जा सकता है। उदाहरण के लिए:MAX, AVG आदि। इसे एक कॉलम पर लागू किया जा सकता है।

अब, मैं एक कॉलम के लिए SELECT DISTINCT का उपयोग करने के लिए एक टेबल बना रहा हूं। CREATE कमांड की मदद से टेबल बनाना -

mysql> CREATE TABLE DistinctDemo-> (-> id int,-> name varchar(100)-> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.64 सेकंड)

रिकॉर्ड सम्मिलित करना -

mysql> DistinctDemo मानों में सम्मिलित करें (1, 'जॉन'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> DistinctDemo मानों में सम्मिलित करें (2, 'जॉन'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) )mysql> DistinctDemo मानों में सम्मिलित करें (3, 'बॉब'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> DistinctDemo मानों में सम्मिलित करें (4, 'जॉन'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> DistinctDemo मानों में सम्मिलित करें (5, 'डेविड'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> DistinctDemo मानों में सम्मिलित करें (6, 'बॉब'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) 

सेलेक्ट कमांड की मदद से सभी रिकॉर्ड्स को प्रदर्शित करना। क्वेरी इस प्रकार है -

mysql> DistinctDemo से * चुनें;

उपरोक्त क्वेरी को निष्पादित करने के बाद, हमें निम्न आउटपुट मिलेगा -

<पूर्व>+----------+----------+| आईडी | नाम |+----------+----------+| 1 | जॉन || 2 | जॉन || 3 | बॉब || 4 | जॉन || 5 | डेविड || 6 | बॉब |+------+----------+6 पंक्तियों में सेट (0.00 सेकंड)

ऊपर, हमारे पास छह रिकॉर्ड हैं जहां जॉन और बॉब डुप्लिकेट हैं। हम डुप्लिकेट रिकॉर्ड को हटाने के लिए DISTINCT लागू कर सकते हैं। वाक्य रचना इस प्रकार है -

अपनेTableName क्रम से column_name द्वारा अलग कॉलम_नाम चुनें;

अब, मैं उपरोक्त क्वेरी को डुप्लिकेट को हटाने के लिए लागू कर रहा हूं -

mysql> DistinctDemo से अलग नाम चुनें;

निम्न आउटपुट है

<पूर्व>+----------+| नाम |+----------+| जॉन || बॉब || डेविड |+----------+3 पंक्तियाँ सेट में (0.00 सेकंड)

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

सबसे पहले, मैं CREATE कमांड की मदद से एक टेबल बना रहा हूँ -

mysql> टेबल बनाएं GroupDemo1-> (-> id int,-> name varchar(100),-> address varchar(100)-> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.68 सेकंड)

तालिका बनाने के बाद, मैं तालिका में रिकॉर्ड सम्मिलित कर रहा हूँ जो इस प्रकार है -

mysql> GroupDemo1 मानों में सम्मिलित करें (1, 'जॉन', 'यूएस'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> GroupDemo1 मानों में सम्मिलित करें (2, 'बॉब', 'यूके'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> GroupDemo1 मानों में सम्मिलित करें (3, 'डेविड', 'यूएस'); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> GroupDemo1 मानों में सम्मिलित करें (4, 'डेविड', 'US');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड)

अब, हम सेलेक्ट कमांड की मदद से सभी रिकॉर्ड प्रदर्शित कर सकते हैं -

mysql> GroupDemo1 से * चुनें;

निम्न आउटपुट है -

<पूर्व>+----------+----------+-----------+| आईडी | नाम | पता |+------+----------+---------+| 1 | जॉन | यूएस || 2 | बॉब | यूके || 3 | डेविड | यूएस || 4 | डेविड | यूएस |+------+-------+------------+4 पंक्तियों में सेट (0.00 सेकंड)

घटनाओं की संख्या के साथ एक ही पता जानने के लिए मैं ग्रुप बाय को लागू करूंगा। यहाँ सिंटेक्स है -

SELECT column_name1,......N समुच्चय फ़ंक्शन ( ) yourTableName समूह bycolumn_name;

आइए ऊपर दिए गए सिंटैक्स को GROUP BY पर लागू करें -

mysql> पता चुनें, GroupDemo1 समूह से पते के आधार पर गिनती (*) करें;

निम्न आउटपुट है -

+-----------+----------+| पता | गिनती (*) |+------------+----------+| यूएस | 3 || यूके | 1 |+-----------+----------+2 पंक्तियाँ सेट में (0.00 सेकंड)

  1. महीने के हिसाब से MySQL कैसे चुनें?

    महीने के अनुसार चयन करने के लिए, MONTH() फ़ंक्शन का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.78 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1599 मान (2018-12-26) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) चयन कथन का उपयोग

  1. MySQL क्वेरी तालिका के अलग कॉलम से औसत का चयन करने के लिए?

    औसत प्राप्त करने के लिए, AVG() का उपयोग करें और अलग-अलग रिकॉर्ड से गणना करने के लिए इसे DISTINCT के साथ उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1934 (StudentName varchar(20), StudentMarks int); क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कु

  1. MySQL में उच्चतम वेतन का चयन करें?

    इसके लिए आप MAX() का प्रयोग कर सकते हैं। वाक्य रचना इस प्रकार है - अपनेTableName से किसी भी उपनाम के रूप में MAX(yourColumnName) का चयन करें; आइए एक टेबल बनाएं - ;क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.27 सेकंड) इंसर्ट कमांड की मदद से टेबल में कुछ रिकॉर्ड डालें - डेमो44 (कर्मचारी_नाम, कर्मचारी_ वेतन