सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite AVG
का उपयोग कैसे करें मूल्यों के एक सेट के औसत मूल्य की गणना करने के लिए कार्य करता है।
SQLite AVG फ़ंक्शन का परिचय
AVG
फ़ंक्शन एक समग्र फ़ंक्शन है जो सभी गैर-शून्य मानों . के औसत मान की गणना करता है एक समूह के भीतर।
निम्नलिखित AVG
. के सिंटैक्स को दिखाता है समारोह:
AVG([ALL | DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
डिफ़ॉल्ट रूप से, AVG
फ़ंक्शन ALL
. का उपयोग करता है खंड आप इसे निर्दिष्ट करते हैं या नहीं। इसका मतलब है कि औसत मान की गणना करते समय AVG फ़ंक्शन सभी गैर-शून्य मान लेगा।
यदि आप विशिष्ट (या अद्वितीय) मानों के औसत मूल्य की गणना करना चाहते हैं, तो आपको अभिव्यक्ति में स्पष्ट रूप से DISTINCT खंड निर्दिष्ट करना होगा।
यदि कोई कॉलम मिश्रित डेटा प्रकारों जैसे पूर्णांक, वास्तविक, BLOB और टेक्स्ट को संग्रहीत करता है, तो SQLite AVG
फ़ंक्शन बीएलओबी की व्याख्या करता है जो शून्य (0) के रूप में एक संख्या की तरह नहीं दिखता है।
AVG
. का मान फ़ंक्शन हमेशा एक फ़्लोटिंग पॉइंट मान या NULL
होता है मूल्य। AVG
फ़ंक्शन केवल एक NULL
देता है मान अगर और केवल अगर समूह में सभी मान NULL
हैं मान।
SQLite फ़ंक्शन विभिन्न डेटा प्रकारों के साथ कैसे काम करता है, यह देखने के लिए आप एक त्वरित परीक्षण कर सकते हैं।
सबसे पहले, avg_tests
. नाम की एक नई तालिका बनाएं निम्नलिखित कथन का उपयोग करते हुए:
CREATE TABLE avg_tests (val);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
इसके बाद, avg_tests
. में कुछ मिश्रित मान डालें टेबल।
INSERT INTO avg_tests (val)
VALUES
(1),
(2),
(10.1),
(20.5),
('8'),
('B'),
(NULL),
(x'0010'),
(x'0011');
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
फिर, avg_tests
. से डेटा क्वेरी करें टेबल।
SELECT rowid,
val
FROM avg_tests;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
उसके बाद, आप AVG
. का उपयोग कर सकते हैं पहली चार पंक्तियों के औसत की गणना करने के लिए कार्य करता है जिसमें केवल संख्यात्मक मान होते हैं।
SELECT
avg(val)
FROM
avg_tests
WHERE
rowid < 5;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
अंत में, AVG
लागू करें val
. में सभी मानों के लिए कार्य करें avg_tests
. का कॉलम टेबल।
SELECT
avg(val)
FROM
avg_tests;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
avg_tests
. में आपकी 9 पंक्तियाँ हैं टेबल। पंक्ति 7 NULL
है . इसलिए, औसत की गणना करते समय, AVG
फ़ंक्शन इसे अनदेखा करता है और गणना में 8 पंक्तियां लेता है।
पहली चार पंक्तियाँ पूर्णांक और वास्तविक मान हैं:1,2, 10.1 और 20.5। SQLite AVG फ़ंक्शन गणना में उन मानों का उपयोग करता है।
5वीं और 6वीं पंक्ति टेक्स्ट प्रकार हैं क्योंकि हमने 'बी' और '8' के रूप में डाला है। क्योंकि 8 एक संख्या की तरह दिखता है, इसलिए SQLite B को 0 और '8' को 8 के रूप में व्याख्यायित करता है।
8वीं और 9वीं पंक्तियाँ हैं BLOB
प्रकार जो संख्याओं की तरह नहीं दिखते हैं, इसलिए SQLite इन मानों को 0 के रूप में व्याख्यायित करता है।
AVG(cal)
व्यंजक निम्न सूत्र का उपयोग करता है:
AVG(val) = (1 + 2 + 10.1 + 20.5 + 8 + 0 + 0 + 0 )/ 8 = 5.2
Code language: SQL (Structured Query Language) (sql)
आइए देखें कि कैसे DISTINCT
खंड काम करता है।
सबसे पहले, avg_tests
. में एक नई पंक्ति डालें मान वाली तालिका पहले से मौजूद है।
INSERT INTO avg_tests (val)
VALUES (10.1);
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
दूसरा, AVG
लागू करें DISTINCT
के बिना कार्य करें खंड:
SELECT
avg(val)
FROM
avg_tests;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
तीसरा, DISTINCT
जोड़ें AVG
. का खंड समारोह:
SELECT
avg(DISTINCT val)
FROM
avg_tests;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
क्योंकि avg_tests
तालिका में 10.1 समान मान वाली दो पंक्तियाँ हैं, AVG(DISTINCT)
गणना के लिए केवल एक पंक्ति लेता है। इसलिए, आपको एक अलग परिणाम मिला।
SQLite AVG
व्यावहारिक उदाहरण कार्य करें
हम tracks
. का उपयोग करेंगे प्रदर्शन के लिए नमूना डेटाबेस में तालिका।
मिलीसेकंड में सभी ट्रैक की औसत लंबाई की गणना करने के लिए, आप निम्न कथन का उपयोग करते हैं:
SELECT
avg(milliseconds)
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
SQLite AVG फंक्शन GROUP BY
के साथ खंड
प्रत्येक एल्बम के लिए ट्रैक की औसत लंबाई की गणना करने के लिए, आप AVG
. का उपयोग करते हैं GROUP BY
. के साथ कार्य करें खंड।
सबसे पहले, GROUP BY
क्लॉज एल्बमों द्वारा ट्रैक का एक समूह समूहित करता है। फिर, AVG
फ़ंक्शन प्रत्येक एल्बम के लिए ट्रैक की औसत लंबाई की गणना करता है।
निम्नलिखित कथन देखें।
SELECT
albumid,
avg(milliseconds)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
SQLite AVG
INNER JOIN
के साथ कार्य करें खंड उदाहरण
एल्बम का शीर्षक albumid
. के साथ प्राप्त करने के लिए कॉलम, आप उपरोक्त कथन में निम्न क्वेरी की तरह INNER JOIN क्लॉज का उपयोग करते हैं:
SELECT
tracks.AlbumId,
Title,
round(avg(Milliseconds), 2) avg_length
FROM
tracks
INNER JOIN albums ON albums.AlbumId = tracks.albumid
GROUP BY
tracks.albumid;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
ध्यान दें कि हमने ROUND
. का उपयोग किया है फ़्लोटिंग मान को दशमलव बिंदु के दाईं ओर 2 अंकों तक गोल करने के लिए कार्य करता है।
HAVING क्लॉज उदाहरण के साथ SQLite AVG फंक्शन
आप या तो AVG
. का उपयोग कर सकते हैं समूहों को फ़िल्टर करने के लिए HAVING क्लॉज़ में फ़ंक्शन या उसके कॉलम का उपनाम। निम्न कथन केवल उन्हीं एल्बमों को प्राप्त करता है जिनकी औसत लंबाई 100000 और 200000 के बीच होती है।
SELECT
tracks.albumid,
title,
round(avg(milliseconds),2) avg_leng
FROM
tracks
INNER JOIN albums ON albums.AlbumId = tracks.albumid
GROUP BY
tracks.albumid
HAVING
avg_leng BETWEEN 100000 AND 200000;
Code language: SQL (Structured Query Language) (sql)
इसे आज़माएं
इस ट्यूटोरियल में, हमने आपको दिखाया है कि SQLite AVG
. का उपयोग कैसे किया जाता है समूह में गैर-शून्य मानों के औसत मानों की गणना करने के लिए कार्य करता है।