Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

AVG () - MySQL में एक कॉलम के औसत मान की गणना करें

MySQL का उपयोग करते समय, आप AVG() . का उपयोग कर सकते हैं मानों की श्रेणी से औसत मान की गणना करने के लिए कार्य करता है।

उदाहरण के लिए, आप इस फ़ंक्शन का उपयोग यह पता लगाने के लिए कर सकते हैं कि किसी दिए गए देश या राज्य के लिए शहर की औसत जनसंख्या क्या है। यह देखते हुए कि किसी देश में कई शहर होंगे, प्रत्येक में अलग-अलग आबादी होगी, आप यह पता लगा सकते हैं कि उनके बीच औसत क्या है। एक शहर की आबादी 50,000 हो सकती है जबकि दूसरे की जनसंख्या 500,000 है। AVG() फ़ंक्शन आपके लिए औसत की गणना करेगा।

सिंटैक्स

AVG() . का सिंटैक्स इस तरह जाता है:

AVG([DISTINCT] expr) [over_clause]

जहां expr वह अभिव्यक्ति है जिसके लिए आप औसत चाहते हैं।

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

कच्चा डेटा

सबसे पहले, यहां कच्चा डेटा है जिसका उपयोग हम इस पृष्ठ पर उदाहरणों के लिए करेंगे:

नाम, जिला, शहर से जनसंख्या चुनें जहां कंट्रीकोड ='एयूएस';

परिणाम:

+----------------------------+---------------------+----------- +| नाम | जिला | जनसंख्या | | सिडनी | न्यू साउथ वेल्स | 3276207 || मेलबोर्न | विक्टोरिया | 2865329 || ब्रिस्बेन | क्वींसलैंड | 1291117 || पर्थ | पश्चिम ऑस्ट्रेलिया | 1096829 || एडिलेड | दक्षिण ऑस्ट्रेलिया | 978100 || कैनबरा | राजधानी क्षेत्र | 322723 || गोल्ड कोस्ट | क्वींसलैंड | 311932 || न्यूकैसल | न्यू साउथ वेल्स | 270324 || सेंट्रल कोस्ट | न्यू साउथ वेल्स | 227657 || वोलोंगोंग | न्यू साउथ वेल्स | 219761 || होबार्ट | तस्मानिया | 126118 || जिलॉन्ग | विक्टोरिया | 125382 || टाउन्सविल | क्वींसलैंड | 109914 || केर्न्स | क्वींसलैंड | 92273 |+---------------+---------------------+-----------+ 

मूल उदाहरण

जैसा कि आप ऊपर दिए गए कच्चे डेटा से देख सकते हैं, कुछ "जिलों" में एक से अधिक शहर हैं, और प्रत्येक शहर की एक अलग आबादी है। हम AVG() . का उपयोग कर सकते हैं प्रत्येक जिले में शहरों की औसत जनसंख्या ज्ञात करने के लिए कार्य करें:

शहर से 'औसत जनसंख्या' के रूप में जिला, औसत (जनसंख्या) चुनें, जहां देश कोड ='ऑस' और जिला ='न्यू साउथ वेल्स';

परिणाम:

+---------------------+--------------------------+| जिला | औसत जनसंख्या |+-----------------+--------------------------+| न्यू साउथ वेल्स | 998487.2500 | 

इसलिए हम देख सकते हैं कि न्यू साउथ वेल्स की शहर की औसत आबादी 998487.2500 है।

औसत राउंडिंग

आपने शायद देखा कि पिछले उदाहरण का परिणाम काफी सटीक था - इसने परिणाम को चार दशमलव स्थानों पर लौटा दिया। हमारे मामले में, यह शायद थोड़ा अधिक है। हमें चौथे दशमलव स्थान पर परिणाम की आवश्यकता नहीं है। इसलिए, हम ROUND() . का उपयोग कर सकते हैं इसे निकटतम पूर्ण संख्या में गोल करने के लिए कार्य करें (या यदि हम चाहें तो दशमलव स्थानों की एक निर्दिष्ट संख्या तक)।

परिणाम को निकटतम पूर्ण संख्या में पूर्णांकित करने का एक उदाहरण यहां दिया गया है:

सिलेक्ट डिस्ट्रिक्ट, राउंड (एवीजी(जनसंख्या)) 'औसत जनसंख्या' के रूप में शहर से जहां कंट्रीकोड ='एयूएस' और डिस्ट्रिक्ट ='न्यू साउथ वेल्स';

परिणाम:

+---------------------+--------------------------+| जिला | औसत जनसंख्या |+-----------------+--------------------------+| न्यू साउथ वेल्स | 998487 |+---------------------+---------------------+

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

ग्रुप बाय क्लॉज

हम GROUP BY . का उपयोग कर सकते हैं प्रत्येक जिले/राज्य को उनकी औसत शहर की आबादी के साथ सूचीबद्ध करने के लिए खंड:

शहर से 'औसत जनसंख्या' के रूप में जिला, राउंड (औसत (जनसंख्या)) चुनें, जहां कंट्रीकोड ='एयूएस' जिले के अनुसार समूह;

परिणाम:

+---------------------+--------------------------+| जिला | औसत जनसंख्या |+-----------------+--------------------------+| न्यू साउथ वेल्स | 998487 || विक्टोरिया | 1495356 || क्वींसलैंड | 451309 || पश्चिम ऑस्ट्रेलिया | 1096829 || दक्षिण ऑस्ट्रेलिया | 978100 || राजधानी क्षेत्र | 322723 || तस्मानिया | 126118 |+----------------------------+---------------------+

द ऑर्डर बाय क्लॉज

हम ORDER BY . का भी उपयोग कर सकते हैं एक कॉलम निर्दिष्ट करने के लिए क्लॉज जिसके द्वारा ऑर्डर करना है:

शहर से 'औसत जनसंख्या' के रूप में जिला, राउंड (औसत (जनसंख्या)) चुनें, जहां कंट्रीकोड ='औसत जनसंख्या' के आधार पर जिलाआर्डर द्वारा 'एयूएस' समूह;

परिणाम:

+---------------------+--------------------------+| जिला | औसत जनसंख्या |+-----------------+--------------------------+| तस्मानिया | 126118 || राजधानी क्षेत्र | 322723 || क्वींसलैंड | 451309 || दक्षिण ऑस्ट्रेलिया | 978100 || न्यू साउथ वेल्स | 998487 || पश्चिम ऑस्ट्रेलिया | 1096829 || विक्टोरिया | 1495356 |+---------------------+---------------------+

ध्यान दें कि, बहु-शब्द उपनाम (जैसे `Average Population` . द्वारा आदेश देते समय ), आपको बैकटिक वर्ण का उपयोग करना होगा (` ) धर्मोपदेश के बजाय (' ) दो शब्दों को घेरने के लिए।

औसत वर्ण लंबाई ज्ञात करें

AVG() फ़ंक्शन केवल संख्यात्मक डेटा वाले कॉलम तक सीमित नहीं है। आप AVG() . को भी मिला सकते हैं अन्य क्षेत्रों में औसत खोजने के लिए अन्य कार्यों के साथ।

उदाहरण के लिए, हमारे नमूना डेटा का उपयोग करके, हम City में सभी मानों की औसत वर्ण लंबाई पा सकते हैं कॉलम:

सिलेक्ट राउंड (एवीजी(CHAR_LENGTH(Name))) 'औसत कैरेक्टर लेंथ' के रूप में शहर से जहां कंट्रीकोड ='एयूएस' और डिस्ट्रिक्ट ='न्यू साउथ वेल्स';

परिणाम:

+--------------------------+| औसत वर्ण लंबाई |+--------------------------+| 10 |+--------------------------+

ओवर क्लॉज का उपयोग करना

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

यहां एक उदाहरण दिया गया है:

जिला चुनें, नाम AS शहर, जनसंख्या, ROUND (औसत (जनसंख्या) ओवर (जिले द्वारा विभाजन)) 'जिला औसत' के रूप में शहर से कंट्रीकोड =जिले द्वारा 'AUS'ORDER;

परिणाम:

+---------------------+----------------------------+--------------- +--------------+| जिला | शहर | जनसंख्या | जिला औसत | +--------------+| राजधानी क्षेत्र | कैनबरा | 322723 | 322723 || न्यू साउथ वेल्स | सिडनी | 3276207 | 998487 || न्यू साउथ वेल्स | वोलोंगोंग | 219761 | 998487 || न्यू साउथ वेल्स | न्यूकैसल | 270324 | 998487 || न्यू साउथ वेल्स | सेंट्रल कोस्ट | 227657 | 998487 || क्वींसलैंड | टाउन्सविल | 109914 | 451309 || क्वींसलैंड | ब्रिस्बेन | 1291117 | 451309 || क्वींसलैंड | केर्न्स | 92273 | 451309 || क्वींसलैंड | गोल्ड कोस्ट | 311932 | 451309 || दक्षिण ऑस्ट्रेलिया | एडिलेड | 978100 | 978100 || तस्मानिया | होबार्ट | 126118 | 126118 || विक्टोरिया | मेलबोर्न | 2865329 | 1495356 || विक्टोरिया | जिलॉन्ग | 125382 | 1495356 || पश्चिम ऑस्ट्रेलिया | पर्थ | 1096829 | 1096829 | --------------+

यह उदाहरण पंक्तियों को District . द्वारा विभाजित करता है , प्रत्येक विभाजन (जिला) के लिए औसत प्रदान करना। यह आपको अधिक विस्तृत डेटा देखने की अनुमति देता है, जैसे कि शहर की जनसंख्या, साथ ही उस जिले की औसत जनसंख्या, जिसमें वह आता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql पीडीओ कैसे बांधें LIKE

  2. MySQL पूर्णांक फ़ील्ड PHP में स्ट्रिंग के रूप में लौटाया जाता है

  3. मैं MySQL लोड त्रुटि को कैसे ठीक कर सकता हूं?

  4. पिछले 12 महीनों की MySQL मासिक बिक्री बिना बिक्री वाले महीनों सहित

  5. MYSQL LOAD DATA INFILE का उपयोग करके csv से डेटा आयात करता है