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

PostgreSQL में AVG () फ़ंक्शन

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)

तो हमारे उदाहरण ने उन विशिष्ट मानों का औसत लौटा दिया।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में LISTAGG (Oracle डेटाबेस) के बराबर क्या है?

  2. डॉकटर कंपोज़ में पोस्टग्रेज कंटेनर सर्वर पोर्ट को बदलना

  3. PostgreSQL कनेक्शन पूलिंग:भाग 3 - Pgpool-II

  4. Createuser:डेटाबेस पोस्टग्रेज से कनेक्ट नहीं हो सका:FATAL:रोल टॉम मौजूद नहीं है

  5. PostgreSQL त्रुटि:फ़ंक्शन to_tsvector(चरित्र भिन्न, अज्ञात) मौजूद नहीं है