Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में SUM() और COALESCE() से रिकॉर्ड न होने पर 0 लौटाएं

MySQL में COALESCE(SUM(column), 0) से खाली परिणाम पर 0 वापस करना

जब WHERE क्लॉज से कोई रो मेल नहीं खाती, तो SUM() NULL लौटाता है। COALESCE() से इसे 0 में बदलें।

सिंटैक्स:

SELECT COALESCE(SUM(yourColumnName2), 0) AS anyVariableName 
FROM yourTableName 
WHERE yourColumnName1 LIKE '%yourValue%';

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE SumDemo (
    -> Words VARCHAR(100),
    -> Counter INT
    -> ); 
Query OK, 0 rows affected (0.93 sec)

2. डेटा डालें:

mysql> INSERT INTO SumDemo VALUES('Are You There', 10);
mysql> INSERT INTO SumDemo VALUES('Are You Not There', 15);
mysql> INSERT INTO SumDemo VALUES('Hello This is MySQL', 12);
mysql> INSERT INTO SumDemo VALUES('Hello This is not MySQL', 14);

3. सभी रिकॉर्ड:

+-------------------------+---------+ 
| Words                   | Counter | 
+-------------------------+---------+ 
| Are You There           | 10      | 
| Are You Not There       | 15      | 
| Hello This is MySQL     | 12      | 
| Hello This is not MySQL | 14      | 
+-------------------------+---------+ 
4 rows in set (0.00 sec)

4. केस 1: मेल खाने वाले रिकॉर्ड मौजूद हैं ("hello"):

mysql> SELECT COALESCE(SUM(Counter), 0) AS SumOfAll 
    -> FROM SumDemo WHERE Words LIKE '%hello%';
+----------+ 
| SumOfAll | 
+----------+ 
| 26       | 
+----------+ 
1 row in set (0.00 sec)

(12 + 14 = 26)

5. केस 2: कोई मेल नहीं ("End of MySQL"):

mysql> SELECT COALESCE(SUM(Counter), 0) AS SumOfAll 
    -> FROM SumDemo WHERE Words LIKE '%End of MySQL%';
+----------+ 
| SumOfAll | 
+----------+ 
| 0        | 
+----------+ 
1 row in set (0.00 sec)

क्यों COALESCE जरूरी है?

-- COALESCE के बिना:
SELECT SUM(Counter) FROM SumDemo WHERE Words LIKE '%nonexistent%';
-- परिणाम: NULL (नहीं 0)

-- COALESCE के साथ:
SELECT COALESCE(SUM(Counter), 0) FROM SumDemo WHERE Words LIKE '%nonexistent%';
-- परिणाम: 0

अन्य एग्रीगेट फंक्शन के साथ:

फंक्शनखाली सेट पर परिणामCOALESCE के साथ
SUM()NULLCOALESCE(SUM(col), 0)
AVG()NULLCOALESCE(AVG(col), 0)
COUNT()0 (कभी NULL नहीं)जरूरी नहीं
MIN()/MAX()NULLCOALESCE(MIN(col), 0)

व्यावहारिक उपयोग केस:

  • बिक्री रिपोर्ट: किसी दिन बिक्री न होने पर 0 दिखाएं
  • डैशबोर्ड मीट्रिक: NULL से UI ब्रेक होने से बचाएं
  • गणना में: COALESCE(SUM(sales), 0) + COALESCE(SUM(returns), 0)
  1. - MySQL SELECT स्टेटमेंट में NULL का उपयोग कैसे करें?

    MySQL में NULL की लंबाई 0 होती है। IS NULL से NULL चेक करें, = NULL काम नहीं करता। उदाहरण CREATE TABLE NullWIthSelect (Name VARCHAR(100)); INSERT INTO NullWIthSelect VALUES (John), (Bob), (), (Carol), (), (David), (); SELECT * FROM NullWIthSelect; +-------+ | Name | +-------+ | John | | Bob |

  1. - MySQL में रिकर्सिव SELECT क्वेरी कैसे करें

    रिकर्सिव सेलेक्ट के लिए, आइए एक उदाहरण देखते हैं। सबसे पहले, हम एक टेबल बनाएंगे। टेबल बनाने के लिए CREATE कमांड का उपयोग किया जाता है। ); Query OK, 0 rows affected (0.61 sec) अब, हम टेबल tblSelectDemo में रिकॉर्ड्स डालेंगे। insert into tblSelectDemo values(5,Bob); Query OK, 1 row affected (0.18

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर