PostgreSQL में, AVG()
फ़ंक्शन सभी गैर-शून्य इनपुट मानों के औसत (अंकगणितीय माध्य) की गणना करता है, और परिणाम देता है।
उदाहरण
यह कैसे काम करता है यह दिखाने के लिए यहां एक त्वरित उदाहरण दिया गया है:
SELECT AVG(amount)
FROM payment;
परिणाम:
4.2006673312979002
इस मामले में, amount
payment
. में एक कॉलम है टेबल।
इसे थोड़ा और संदर्भ देने के लिए, यहां तालिका का एक स्नैपशॉट दिया गया है (pagila
से) नमूना डेटाबेस):
+------------+-------------+----------+-----------+--------+----------------------------+ | payment_id | customer_id | staff_id | rental_id | amount | payment_date | +------------+-------------+----------+-----------+--------+----------------------------+ | 16050 | 269 | 2 | 7 | 1.99 | 2017-01-24 21:40:19.996577 | | 16051 | 269 | 1 | 98 | 0.99 | 2017-01-25 15:16:50.996577 | | 16052 | 269 | 2 | 678 | 6.99 | 2017-01-28 21:44:14.996577 | | 16053 | 269 | 2 | 703 | 0.99 | 2017-01-29 00:58:02.996577 | | 16054 | 269 | 1 | 750 | 4.99 | 2017-01-29 08:10:06.996577 | | 16055 | 269 | 2 | 1099 | 2.99 | 2017-01-31 12:23:14.996577 | | 16056 | 270 | 1 | 193 | 1.99 | 2017-01-26 05:10:14.996577 | | 16057 | 270 | 1 | 1040 | 4.99 | 2017-01-31 04:03:42.996577 | | 16058 | 271 | 1 | 1096 | 8.99 | 2017-01-31 11:59:15.996577 | ...
हम देख सकते हैं amount
कॉलम जिसके लिए हमने औसत की गणना की।
तालिका में बहुत अधिक पंक्तियाँ हैं, लेकिन यह आपको मानों का एक उदाहरण दिखाती है।
फ़िल्टर किए गए परिणाम
AVG()
फ़ंक्शन क्वेरी द्वारा लौटाई गई पंक्तियों पर काम करता है। इसलिए यदि आप परिणामों को फ़िल्टर करते हैं, तो AVG()
. का परिणाम प्रतिबिंबित करेंगे।
आइए परिणामों को फ़िल्टर करें:
SELECT AVG(amount)
FROM payment
WHERE customer_id = 271;
परिणाम:
3.8233333333333333
इसलिए इस बार हमें ग्राहक द्वारा भुगतान की गई सभी राशियों का औसत 271 मिला।
DISTINCT
कीवर्ड
आप DISTINCT
. का उपयोग कर सकते हैं AVG()
with के साथ कीवर्ड केवल अलग-अलग मानों की गणना करने के लिए। अर्थात्, यदि कोई डुप्लिकेट मान हैं, तो उन्हें एक मान के रूप में माना जाता है।
उदाहरण:
SELECT
AVG(amount) AS "All",
AVG(DISTINCT amount) AS "Distinct"
FROM payment;
परिणाम:
+--------------------+--------------------+ | All | Distinct | +--------------------+--------------------+ | 4.2006673312979002 | 6.1447368421052632 | +--------------------+--------------------+
इस मामले में, विशिष्ट और गैर-विशिष्ट परिणामों के बीच बहुत बड़ा अंतर है। इससे पता चलता है कि उस कॉलम में बहुत सारे डुप्लिकेट मान हैं।
इसे सत्यापित करने के लिए, हम इस तरह के विशिष्ट मानों को आउटपुट कर सकते हैं:
SELECT DISTINCT amount
FROM payment;
परिणाम:
+--------+ | amount | +--------+ | 1.99 | | 3.98 | | 7.99 | | 5.99 | | 10.99 | | 2.99 | | 8.97 | | 8.99 | | 3.99 | | 9.98 | | 11.99 | | 7.98 | | 6.99 | | 0.00 | | 4.99 | | 5.98 | | 0.99 | | 1.98 | | 9.99 | +--------+ (19 rows)
तो हमारे उदाहरण ने उन विशिष्ट मानों का औसत लौटा दिया।