"0" वाली प्रविष्टियों को बाहर करने के लिए, आपको फ़ंक्शन AVG() के साथ NULLIF() का उपयोग करना होगा।
वाक्य रचना इस प्रकार है
चुनें AVG(NULLIF(yourColumnName, 0)) अपने TableName से किसी भी उपनाम के रूप में;
आइए पहले एक टेबल बनाएं
mysql> टेबल बनाएं एवरेजडेमो -> ( -> आईडी नॉट न्यूल AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(20), -> StudentMarks int -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.72 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।
क्वेरी इस प्रकार है
mysql> औसत डेमो में डालें;क्वेरी ओके, 1 पंक्ति प्रभावित (0.19 सेकंड)mysql> एवरेजडेमो (स्टूडेंटनाम, स्टूडेंटमार्क्स) वैल्यू ('माइक', 0) में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> एवरेजडेमो (स्टूडेंटनाम, स्टूडेंटमार्क) में डालें। मान ('सैम', 45); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> औसत डेमो में डालें (छात्र नाम, छात्र मार्क्स) मान ('बॉब', 0); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> औसत डेमो में डालेंचयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी इस प्रकार है
mysql> एवरेजडेमो से *चुनें;निम्न आउटपुट है
+-----+-------------+--------------+| आईडी | छात्र का नाम | स्टूडेंटमार्क्स |+-----+-------------+--------------+| 1 | एडम | शून्य || 2 | लैरी | 23 || 3 | माइक | 0 || 4 | सैम | 45 || 5 | बॉब | 0 || 6 | डेविड | 32 |+----+----------------+--------------+6 पंक्तियों में सेट (0.00 सेकंड)औसत का उपयोग करते समय "0" वाली प्रविष्टियों को बाहर करने के लिए क्वेरी निम्नलिखित है
mysql> AVG चुनें (nullif(StudentMarks, 0)) AS Exclude0Avg एवरेजडेमो से;निम्न आउटपुट है
<पूर्व>+---------------+| बहिष्कृत करें0औसत |+---------------+| 33.3333 |+---------------+1 पंक्ति में सेट (0.05 सेकंड)