MySQL एग्रीगेट फंक्शंस ट्यूटोरियल: एसयूएम, एवीजी, मैक्स, मिन, COUNT, DISTINCT

Anonim

सकल कार्य सभी के बारे में हैं

  • कई पंक्तियों पर गणना करना
  • किसी तालिका के एकल स्तंभ का
  • और एक ही मान लौटा रहे हैं।

आईएसओ मानक पांच (5) कुल कार्यों को परिभाषित करता है;

1) COUNT

2) एसयूएम
3) एवीजी
4) मिन
5) मैक्स

कुल कार्यों का उपयोग क्यों करें।

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

> एग्रिगेट फ़ंक्शंस हमें आसानी से अपने डेटाबेस से सारांशित डेटा का उत्पादन करने की अनुमति देते हैं।

उदाहरण के लिए, हमारे myflix डेटाबेस से, प्रबंधन को निम्नलिखित रिपोर्टों की आवश्यकता हो सकती है

  • कम से कम किराए की फिल्में।
  • ज्यादातर किराए की फिल्में।
  • औसत संख्या जो प्रत्येक फिल्म को एक महीने में किराए पर दी जाती है।

हम कुल कार्यों का उपयोग करके आसानी से उपरोक्त रिपोर्ट तैयार करते हैं।

आइए विस्तार से देखें।

COUNT समारोह

COUNT फ़ंक्शन निर्दिष्ट फ़ील्ड में मानों की कुल संख्या लौटाता है। यह संख्यात्मक और गैर-संख्यात्मक दोनों प्रकार के डेटा पर काम करता है। डिफ़ॉल्ट रूप से सभी कुल कार्य डेटा पर काम करने से पहले शून्य मानों को बाहर कर देते हैं।

COUNT (*) COUNT फ़ंक्शन का एक विशेष कार्यान्वयन है जो एक निर्दिष्ट तालिका में सभी पंक्तियों की गिनती लौटाता है। COUNT (*) नल और डुप्लिकेट को भी मानता है।

नीचे दी गई तालिका में मूवमेंट टेबल में डेटा दिखाया गया है

संदर्भ संख्या लेन - देन की तारीख वापसी दिनांक सदस्यता संख्या movie_id फिल्म_ लौट आई
1 1 20-06-2012 शून्य 1 1
१२ 22-06-2012 25-06-2012 1
१३ 22-06-2012 25-06-2012
१४ 21-06-2012 24-06-2012
१५ 23-06-2012 शून्य

मान लेते हैं कि हम कई बार आईडी 2 वाली फिल्म को किराए पर लेना चाहते हैं

SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;

MySQL के कार्यक्षेत्र में उपरोक्त क्वेरी को Myflixdb के विरुद्ध निष्पादित करने से हमें निम्नलिखित परिणाम मिलते हैं।

 
COUNT('movie_id')
3

DISTINCT कीवर्ड

DISTINCT कीवर्ड जो हमें हमारे परिणामों से डुप्लिकेट को छोड़ने की अनुमति देता है। यह समान मूल्यों को एक साथ समूहित करके हासिल किया जाता है।

डिस्टिक्ट की अवधारणा की सराहना करने के लिए, एक सरल क्वेरी निष्पादित करें

SELECT `movie_id` FROM `movierentals`;
 
movie_id
1
2
2
2
3

अब उसी क्वेरी को अलग कीवर्ड के साथ निष्पादित करते हैं -

SELECT DISTINCT `movie_id` FROM `movierentals`;

जैसा कि नीचे दिखाया गया है, विशिष्ट परिणामों से डुप्लिकेट रिकॉर्ड को छोड़ देता है।

 
movie_id
1
2
3

MIN फ़ंक्शन

MIN फ़ंक्शन निर्दिष्ट तालिका फ़ील्ड में सबसे छोटा मान लौटाता है

एक उदाहरण के रूप में, मान लें कि हम उस वर्ष को जानना चाहते हैं जिसमें हमारी लाइब्रेरी में सबसे पुरानी फिल्म रिलीज़ हुई थी, हम वांछित जानकारी प्राप्त करने के लिए MySQL के MIN फ़ंक्शन का उपयोग कर सकते हैं।

निम्नलिखित क्वेरी हमें वह हासिल करने में मदद करती है

SELECT MIN(`year_released`) FROM `movies`;

MySQL के कार्यक्षेत्र में उपरोक्त क्वेरी को Myflixdb के विरुद्ध निष्पादित करने से हमें निम्नलिखित परिणाम मिलते हैं।

 
MIN('year_released')
2005

अधिकतम समारोह

जैसा कि नाम से ही पता चलता है, MAX फ़ंक्शन MIN फ़ंक्शन के विपरीत है। यह निर्दिष्ट तालिका फ़ील्ड से सबसे बड़ा मान लौटाता है

मान लेते हैं कि हम उस वर्ष को प्राप्त करना चाहते हैं जो हमारे डेटाबेस में नवीनतम फिल्म रिलीज हुई थी। हम इसे प्राप्त करने के लिए आसानी से MAX फ़ंक्शन का उपयोग कर सकते हैं।

निम्न उदाहरण रिलीज़ की गई नवीनतम मूवी वर्ष देता है।

SELECT MAX(`year_released`) FROM `movies`;

MySQL कार्यक्षेत्र में उपरोक्त क्वेरी को Myflixdb का उपयोग करने से हमें निम्नलिखित परिणाम मिलते हैं।

 
MAX('year_released')
2012

SUM फ़ंक्शन

मान लीजिए हम एक रिपोर्ट चाहते हैं जो अब तक किए गए भुगतानों की कुल राशि देती है। हम MySQL SUM फ़ंक्शन का उपयोग कर सकते हैं जो निर्दिष्ट कॉलम में सभी मानों का योग देता हैSUM केवल संख्यात्मक क्षेत्रों पर काम करता हैरिक्त मानों को लौटाए गए परिणाम से बाहर रखा गया है।

निम्न तालिका भुगतान तालिका में डेटा दिखाती है-

भुगतान_ आईडी सदस्यता संख्या भुगतान तिथि विवरण भुगतान की गई राशि बाहरी_ संदर्भ _number
1 1 23-07-2012 मूवी किराये का भुगतान 2500 है 1 1
1 २५-०-201-२०१२ मूवी किराये का भुगतान 2000 १२
30-07-2012 मूवी किराये का भुगतान 6000 है शून्य

नीचे दी गई क्वेरी को सभी भुगतान किए गए मिलते हैं और उन्हें एक परिणाम वापस करने के लिए रकम देता है।

SELECT SUM(`amount_paid`) FROM `payments`;

MySQL कार्यक्षेत्र में उपरोक्त क्वेरी को Myflixdb के विरुद्ध निष्पादित करने से निम्न परिणाम मिलते हैं।

 
SUM('amount_paid')
10500

AVG फ़ंक्शन

MySQL AVG फ़ंक्शन एक निर्दिष्ट कॉलम में मानों का औसत लौटाता है । SUM फ़ंक्शन की तरह, यह केवल संख्यात्मक डेटा प्रकारों पर काम करता है

मान लीजिए कि हम भुगतान की गई औसत राशि खोजना चाहते हैं। हम निम्नलिखित प्रश्न का उपयोग कर सकते हैं -

SELECT AVG(`amount_paid`) FROM `payments`;

MySQL कार्यक्षेत्र में उपरोक्त क्वेरी को निष्पादित करने से हमें निम्नलिखित परिणाम मिलते हैं।

 
AVG('amount_paid')
3500

सारांश

  • MySQL सभी पाँच (5) ISO मानक समुच्चय कार्यों COUNT, SUM, AVG, MIN और MAX का समर्थन करता है।
  • SUM और AVG फ़ंक्शन केवल संख्यात्मक डेटा पर काम करते हैं।
  • यदि आप कुल फ़ंक्शन परिणामों से डुप्लिकेट मानों को बाहर करना चाहते हैं, तो DISTINCT कीवर्ड का उपयोग करें। सभी कीवर्ड में डुप्लिकेट भी शामिल हैं। यदि कुछ भी निर्दिष्ट नहीं है तो सभी को डिफ़ॉल्ट माना जाता है।
  • एग्रीगेट फ़ंक्शंस का उपयोग अन्य SQL क्लॉस जैसे ग्रुप BY के साथ संयोजन में किया जा सकता है

पहेली

आपको लगता है कि कुल कार्य आसान हैं। ये कोशिश करें!

निम्न उदाहरण समूह के सदस्यों के नाम से, भुगतान की कुल संख्या, औसत भुगतान राशि और भुगतान राशि का भव्य कुल गिना जाता है।

SELECT m.`full_names`,COUNT(p.`payment_id`) AS `paymentscount`,AVG(p.`amount_paid`) AS `averagepaymentamount`,SUM(p.`amount_paid`) AS `totalpayments` FROM members m, payments p WHERE m.`membership_number` = p.`membership_number` GROUP BY m.`full_names`;

MySQL कार्यक्षेत्र में उपरोक्त उदाहरण को निष्पादित करने से हमें निम्नलिखित परिणाम मिलते हैं।