SQLite sum()
फ़ंक्शन किसी समूह में सभी गैर-शून्य मानों का योग देता है।
यदि कोई गैर-शून्य मान नहीं हैं, तो यह NULL लौटाता है।
यह फ़ंक्शन मूल रूप से आपको परिणाम सेट या तालिका में सभी मानों को जोड़ने में सक्षम बनाता है।
उदाहरण
इसके उपयोग को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT sum(Price) FROM Products;
परिणाम:
738.22
यदि आप तालिका में वास्तविक मान नहीं देख सकते हैं तो यह उदाहरण शायद अर्थहीन है।
यहां एक क्वेरी है जो उस तालिका की सभी पंक्तियां लौटाती है।
SELECT * FROM Products;
परिणाम:
ProductId ProductName Price ---------- --------------------- ---------- 1 Blue Widgets (6 Pack) 389.45 2 Widget Holder 139.5 3 Widget Opener 89.27 4 Foobar Set 120.0 5 Red Widget
तो sum()
फ़ंक्शन ने बस कीमत . में सभी मान जोड़ दिए कॉलम।
ध्यान दें कि अंतिम पंक्ति की कीमत NULL है। ठीक है। sum()
फ़ंक्शन केवल सभी गैर-शून्य मान जोड़ता है।
शून्य मान
यदि कोई गैर-शून्य मान नहीं हैं, तो परिणाम NULL है।
SELECT sum(Price)
FROM Products
WHERE ProductId = 5;
परिणाम:
(यह जानबूझकर खाली है, क्योंकि यह NULL लौटा है)।
यह SQLite total()
. के तरीके से अलग है फ़ंक्शन NULL मानों से संबंधित है (यह 0.0 देता है)। दोनों sum()
और total()
इस अंतर को छोड़कर, वही काम करें।
छोटा परिणाम सेट
पहले उदाहरण ने तालिका में सभी पंक्तियों को जोड़ा। लेकिन जरूरी नहीं कि यह पूरी टेबल हो। जैसा कि "NULL" उदाहरण में देखा गया है, आप WHERE
. का भी उपयोग कर सकते हैं तालिका में मानों का सबसेट जोड़ने के लिए क्लॉज।
यहां एक और उदाहरण दिया गया है जो WHERE
. का उपयोग करता है खंड।
SELECT sum(Price)
FROM Products
WHERE ProductId < 3;
परिणाम:
528.95
इस बार यह गैर-शून्य मान जोड़ रहा है, इसलिए मुझे एक गैर-शून्य परिणाम मिलता है।
यहां एक और कॉलम है जो उसी कॉलम से फ़िल्टर करता है जिसे मैं जोड़ रहा हूं।
SELECT sum(Price)
FROM Products
WHERE Price > 100;
परिणाम:
648.95
गैर पूर्णांक इनपुट
यदि कोई इनपुट न तो पूर्णांक या NULL है तो sum()
एक फ़्लोटिंग पॉइंट मान देता है जो वास्तविक योग का अनुमान हो सकता है।
ऐसे मामलों में आपको कुछ अप्रत्याशित परिणाम मिल सकते हैं।
नीचे एक उदाहरण दिया गया है जो फ़ैक्स नंबरों का एक समूह जोड़ने का प्रयास करता है।
सबसे पहले, आइए फ़ैक्स नंबरों की सूची देखें।
SELECT Fax FROM Customer
WHERE Fax IS NOT NULL;
परिणाम:
Fax ------------------ +55 (12) 3923-5566 +420 2 4172 5555 +55 (11) 3033-4564 +55 (11) 3055-8131 +55 (21) 2271-7070 +55 (61) 3363-7855 +1 (780) 434-5565 +1 (604) 688-8756 +1 (650) 253-0000 +1 (425) 882-8081 +1 (212) 221-4679 +1 (408) 996-1011
अब अगर मैं उन्हें जोड़ने का प्रयास करता हूं तो क्या होता है।
SELECT sum(Fax)
FROM Customer;
परिणाम:
701.0
इस मामले में ऐसा लगता है कि सभी उपसर्ग जोड़े गए हैं।
अगर मैं sum()
. का उपयोग करता हूं तो यहां क्या होता है तार के एक स्तंभ पर।
SELECT sum(ProductName)
FROM Products;
परिणाम:
0.0
DISTINCT कीवर्ड
आप DISTINCT
जोड़ सकते हैं केवल विशिष्ट मान जोड़ने के लिए कीवर्ड। ऐसा करने के लिए, sum(DISTINCT X)
. का उपयोग करें जहां X
कॉलम का नाम है।
उदाहरण के लिए देखें कि SQLite Sum() के साथ केवल विशिष्ट मान कैसे जोड़ें।