SQL सर्वर में, SUM()
एग्रीगेट फ़ंक्शन किसी दिए गए एक्सप्रेशन का योग देता है।
इसका उपयोग व्यंजक में सभी विशिष्ट (अद्वितीय) मानों का योग वापस करने के लिए भी किया जा सकता है।
SUM()
केवल संख्यात्मक स्तंभों पर काम करता है। शून्य मानों पर ध्यान नहीं दिया जाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
SUM ( [ ALL | DISTINCT ] expression )
इसका उपयोग OVER
. के साथ भी किया जा सकता है खंड:
SUM ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
उदाहरण
मान लीजिए हमारे पास Products
. नामक एक टेबल है निम्नलिखित डेटा के साथ:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
परिणाम:
+------------+---------------------------------+----------------+ | VendorId | ProductName | ProductPrice | |------------+---------------------------------+----------------| | 1001 | Left handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | NULL | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | | 1001 | Right handed screwdriver | 25.99 | +------------+---------------------------------+----------------+
सभी कीमतों का योग प्राप्त करने के लिए हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं।
SELECT SUM(ProductPrice)
FROM Products;
परिणाम:
367.20
यहां, कीमत की जानकारी ProductPrice
. में स्टोर की जाती है कॉलम, और इसलिए हम इसे SUM()
. के तर्क के रूप में पास करते हैं फ़ंक्शन, जो तब योग की गणना करता है और परिणाम देता है।
शून्य मान
SUM()
फ़ंक्शन इसकी गणना करते समय शून्य मानों को अनदेखा करता है।
यदि कॉलम में शून्य मान हैं, तो आपको एक चेतावनी दिखाई दे सकती है जो दर्शाती है कि शून्य मान हटा दिए गए थे।
उदाहरण के लिए, ऊपर दिए गए उदाहरण को चलाते समय मुझे जो चेतावनी मिली है वह यह है:
SELECT SUM(ProductPrice)
FROM Products;
परिणाम:
+--------------------+ | (No column name) | |--------------------| | 367.20 | +--------------------+ Warning: Null value is eliminated by an aggregate or other SET operation.
फ़िल्टर किए गए परिणाम
SUM()
फ़ंक्शन क्वेरी द्वारा लौटाई गई पंक्तियों पर काम करता है। इसलिए यदि आप परिणामों को फ़िल्टर करते हैं, तो SUM()
. का परिणाम प्रतिबिंबित करेंगे।
SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;
परिणाम:
78.72
इस मामले में, 78.72 निर्दिष्ट विक्रेता द्वारा पेश किए गए सभी उत्पादों का योग है।
DISTINCT
कीवर्ड
आप DISTINCT
. का उपयोग कर सकते हैं SUM()
with के साथ कीवर्ड केवल अलग-अलग मानों की गणना करने के लिए। अर्थात्, यदि कोई डुप्लिकेट मान हैं, तो उन्हें एक मान के रूप में माना जाता है।
उदाहरण:
SELECT
SUM(ALL ProductPrice) AS "All",
SUM(DISTINCT ProductPrice) AS "Distinct"
FROM Products;
परिणाम:
+--------+------------+ | All | Distinct | |--------+------------| | 367.20 | 341.21 | +--------+------------+ Warning: Null value is eliminated by an aggregate or other SET operation.
हमारी तालिका में एक ही कीमत के साथ दो आइटम हैं (बाएं हाथ के स्क्रूड्राइवर और दाएं हाथ के स्क्रूड्राइवर दोनों की कीमत 25.99 है)। DISTINCT
कीवर्ड के परिणामस्वरूप उन दोनों मानों को एक मान लिया जाता है।
विंडो फ़ंक्शंस
SUM()
फ़ंक्शन का उपयोग OVER
. के साथ किया जा सकता है विंडो फ़ंक्शन बनाने के लिए क्लॉज। SQL देखें SUM()
उदाहरण के लिए शुरुआती के लिए।