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

पोस्टग्रेएसक्यूएल में एसयूएम () फ़ंक्शन

PostgreSQL में, SUM() फ़ंक्शन गैर-शून्य इनपुट मानों के योग की गणना करता है और परिणाम देता है।

दूसरे शब्दों में, यह संख्याएँ जोड़ता है और परिणाम देता है।

उदाहरण

यह कैसे काम करता है यह दिखाने के लिए यहां एक त्वरित उदाहरण दिया गया है:

SELECT SUM(amount) 
FROM payment;

परिणाम:

67416.51

इस मामले में, amount payment . में एक कॉलम है टेबल।

इसे थोड़ा और संदर्भ देने के लिए, यहां तालिका का एक स्नैपशॉट दिया गया है:

+------------+-------------+----------+-----------+--------+----------------------------+
| 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 कॉलम जिसे हमने अपने उदाहरण में जोड़ा है।

तालिका में इससे कहीं अधिक डेटा है, लेकिन यह आपको हमारे द्वारा जोड़े गए मानों का एक स्नैपशॉट दिखाता है।

फ़िल्टर किए गए परिणाम

SUM() फ़ंक्शन क्वेरी द्वारा लौटाई गई पंक्तियों पर काम करता है। इसलिए यदि आप परिणामों को फ़िल्टर करते हैं, तो SUM() . का परिणाम प्रतिबिंबित करेंगे।

आइए परिणामों को फ़िल्टर करें:

SELECT SUM(amount) 
FROM payment
WHERE customer_id = 269;

परिणाम:

129.70

तो इस बार हमें ग्राहक 269 द्वारा भुगतान की गई सभी राशियों का योग मिला।

DISTINCT कीवर्ड

आप DISTINCT . का उपयोग कर सकते हैं SUM() with के साथ कीवर्ड केवल अलग-अलग मानों की गणना करने के लिए। अर्थात्, यदि कोई डुप्लिकेट मान हैं, तो उन्हें एक मान के रूप में माना जाता है।

उदाहरण:

SELECT 
    SUM(amount) AS "All",
    SUM(DISTINCT amount) AS "Distinct"
FROM payment;

परिणाम:

+----------+----------+
|   All    | Distinct |
+----------+----------+
| 67416.51 |   116.75 |
+----------+----------+

यह उदाहरण DISTINCT . के परिणामों की तुलना करता है इसे छोड़ने के खिलाफ विकल्प।

इस मामले में, एक बहुत बड़ा अंतर है, जो बताता है कि उस कॉलम में बहुत सारे डुप्लिकेट मान हैं।

इसे सत्यापित करने के लिए, हम इस तरह के विशिष्ट मानों को आउटपुट कर सकते हैं:

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. मैं एएससीआईआई (आईएसओ/आईईसी 8859-1) से अपने रेल/पीजीएसक्यूएल डेटाबेस में डेटा कैसे आयात कर सकता हूं?

  2. कैसे to_timestamp () PostgreSQL में काम करता है

  3. पोस्टग्रेएसक्यूएल प्लैनेट इन अंसिबल गैलेक्सी

  4. कुप्पी-SQLAlchemy लोअर केस इंडेक्स - कार्यात्मक लंघन, SQLAlchemy प्रतिबिंब द्वारा समर्थित नहीं है

  5. डीबी अनुप्रयोगों के लिए ऑडिट ट्रेल/परिवर्तन इतिहास छोड़ने के लिए प्रभावी रणनीति?