कोई मान मौजूद नहीं होने पर MySQL के SUM फ़ंक्शन से '0' कैसे प्राप्त करें
MySQL में SUM फ़ंक्शन संख्यात्मक एकत्रीकरण का एक सुविधाजनक तरीका प्रदान करता है मूल्य. हालाँकि, जब क्वेरी के दौरान कोई मेल खाने वाली पंक्तियाँ नहीं मिलती हैं, तो SUM फ़ंक्शन आमतौर पर एक NULL मान लौटाता है। कुछ उपयोग के मामलों के लिए, NULL के बजाय '0' लौटाना अधिक वांछनीय हो सकता है।
समस्या को हल करने के लिए COALESCE का उपयोग
इस समस्या का समाधान निहित है COALESCE फ़ंक्शन. COALESCE आपको एक डिफ़ॉल्ट मान निर्दिष्ट करने की अनुमति देता है, जब पहला तर्क NULL पर मूल्यांकन करता है।
निम्नलिखित उदाहरण पर विचार करें:
SELECT COALESCE(SUM(Column_1),0) FROM Table WHERE Column_2 = 'Test'
इस क्वेरी में, COALESCE SUM फ़ंक्शन के चारों ओर लपेटता है। यदि उन पंक्तियों के लिए कॉलम_1 का SUM जहां कॉलम_2 'टेस्ट' के बराबर है, शून्य मान लौटाता है, तो COALESCE इसके बजाय '0' प्रदान करेगा।
प्रदर्शन और अधिक जानकारी
http पर जाएं समाधान के लाइव प्रदर्शन के लिए ://www.sqlfiddle.com/#!2/d1542/3/0।
COALESCE की बारीकियों को गहराई से जानने के लिए, निम्नलिखित परिदृश्य पर विचार करें जिसमें अलग-अलग तीन तालिकाएँ शामिल हैं मूल्य वितरण:
SELECT 'foo' as table_name, 'mixed null/non-null' as description, 21 as expected_sum, COALESCE(SUM(val), 0) as actual_sum FROM foo UNION ALL SELECT 'bar' as table_name, 'all non-null' as description, 21 as expected_sum, COALESCE(SUM(val), 0) as actual_sum FROM bar UNION ALL SELECT 'baz' as table_name, 'all null' as description, 0 as expected_sum, COALESCE(SUM(val), 0) as actual_sum FROM baz
TABLE_NAME
ACTUAL_SUM | foo | ||
---|---|---|---|
21 | बार | सभी गैर-शून्य | |
21 | baz | सभी शून्य | |
0 | जैसा कि आप देख सकते हैं, COALESCE फ़ंक्शन कुशलतापूर्वक '0' लौटाता है baz' तालिका, जहां सभी मान शून्य हैं। |
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3