SQLite avg()
फ़ंक्शन किसी समूह के भीतर सभी गैर-शून्य मानों का औसत मान देता है।
यह एक तर्क को स्वीकार करता है, जो मूल्य या मूल्यों का समूह है।
उदाहरण
निम्न तालिका लें:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0
हम avg()
. का उपयोग कर सकते हैं कीमत . से औसत मान प्राप्त करने के लिए कार्य करें कॉलम। इस तरह:
SELECT avg(Price) FROM Products;
परिणाम:
184.555
WHERE क्लॉज परिणाम को कैसे प्रभावित करता है
यदि आपकी क्वेरी WHERE
. का उपयोग करती है खंड, औसत की गणना WHERE
. के बाद की जाएगी धारा ने प्रभाव डाला है। दूसरे शब्दों में, आप WHERE
. का उपयोग कर सकते हैं यह सुनिश्चित करने के लिए कि avg()
फ़ंक्शन केवल उन पंक्तियों की गणना करता है जिनमें आप रुचि रखते हैं।
अगर मैं WHERE
. जोड़ दूं तो यहां बताया गया है कि क्या होता है पिछले उदाहरण का खंड।
SELECT avg(Price)
FROM Products
WHERE ProductName LIKE '%widget%';
परिणाम:
206.073333333333
परिणाम को पूरा करें
परिणाम एक फ़्लोटिंग पॉइंट मान के रूप में लौटाया जाता है (जब तक कि यह न्यूल न हो)। आप round()
. का उपयोग कर सकते हैं आवश्यकतानुसार मान को गोल करने के लिए कार्य करें।
SELECT round(avg(Price), 2)
FROM Products
WHERE ProductName LIKE '%widget%';
परिणाम:
206.07
परिणाम सीमित करना
LIMIT
खंड avg()
की गणना को प्रभावित नहीं करता है फ़ंक्शन - avg()
. के साथ केवल एक पंक्ति लौटाई जाती है वैसे भी कार्य करें।
SELECT avg(Price)
FROM Products
LIMIT 1;
परिणाम:
184.555
उस ने कहा, शून्य की सीमा प्रदान करने के परिणामस्वरूप कुछ भी वापस नहीं किया जाएगा।
स्ट्रिंग और BLOB
स्ट्रिंग और BLOB मान जो संख्याओं की तरह नहीं दिखते हैं, उन्हें 0 के रूप में व्याख्यायित किया जाता है।
SELECT avg(ProductName) FROM Products;
परिणाम:
0.0
पूर्ण तर्क
यदि कोई गैर-नल इनपुट नहीं है, तो औसत () फ़ंक्शन NULL देता है।
SELECT avg(NULL);
परिणाम:
(वह परिणाम NULL है)।
हालांकि, अगर कम से कम एक गैर-नल तर्क है, तो यह NULL नहीं लौटाएगा।
इसे प्रदर्शित करने के लिए, मैं यहां एक नई पंक्ति डालूंगा, लेकिन कीमत . को छोड़ दूंगा NULL पर कॉलम:
INSERT INTO Products (ProductId, ProductName)
VALUES (5, 'Red Widget');
SELECT * FROM Products;
परिणाम:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0 5 Red Widget
इसलिए अंतिम पंक्ति का कोई मूल्य नहीं है - कीमत कॉलम न्यूल है।
अब जब मैं avg()
. का उपयोग करता हूं फ़ंक्शन, यह अभी भी सभी गैर-नल पंक्तियों का औसत लौटाता है।
SELECT avg(Price) FROM Products;
परिणाम:
184.555
DISTINCT कीवर्ड
आप DISTINCT
. का उपयोग कर सकते हैं कॉलम में केवल विशिष्ट मानों के औसत की गणना करने के लिए कीवर्ड। यह गणना से किसी भी डुप्लिकेट मान को हटाने का प्रभाव है।
उदाहरण के लिए DISTINCT कीवर्ड के साथ SQLite में अपना औसत () परिणाम ट्वीक करें देखें।