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

SQLite औसत () कैसे काम करता है

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 में अपना औसत () परिणाम ट्वीक करें देखें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कक्ष एपीआई - इकाई की हाल ही में डाली गई आईडी कैसे प्राप्त करें?

  2. लॉगकैट अमान्य कॉलम डेटा 1 कहता है

  3. <expr> अपेक्षित, मिला '?'

  4. SQLite में किसी तारीख में एक महीना कैसे जोड़ें

  5. स्थानीय डीबी के साथ फायरबेस डीबी का प्रयोग करें