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)
तो हमारे उदाहरण ने उन सभी विशिष्ट मूल्यों को जोड़ा।