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

MySQL में सभी पंक्तियाँ NULL न हों तो SUM करें अन्यथा NULL लौटाएँ

MySQL में आप GROUP BY के साथ HAVING क्लॉज का उपयोग करके यह प्राप्त कर सकते हैं। सिंटैक्स निम्नलिखित है:

SELECT yourColumnName1, SUM(yourColumnName2)
FROM yourTableName
GROUP BY yourColumnName1
HAVING COUNT(yourColumnName2) = COUNT(*);

इसे समझने के लिए एक टेबल बनाते हैं:

CREATE TABLE SumDemo (
    Id INT,
    Amount INT
);

टेबल में कुछ रिकॉर्ड डालें:

INSERT INTO SumDemo VALUES (1, 200);
INSERT INTO SumDemo VALUES (2, 100);
INSERT INTO SumDemo VALUES (2, NULL);
INSERT INTO SumDemo VALUES (1, 300);
INSERT INTO SumDemo VALUES (2, 100);
INSERT INTO SumDemo VALUES (1, 500);

सभी रिकॉर्ड देखने के लिए:

SELECT * FROM SumDemo;

आउटपुट

+------+--------+
| Id   | Amount |
+------+--------+
| 1    | 200    |
| 2    | 100    |
| 2    | NULL   |
| 1    | 300    |
| 2    | 100    |
| 1    | 500    |
+------+--------+

अब वह क्वेरी जो तभी SUM लौटाएगी जब उस ग्रुप की सभी पंक्तियाँ NULL न हों:

SELECT Id, SUM(Amount)
FROM SumDemo
GROUP BY Id
HAVING COUNT(Amount) = COUNT(*);

आउटपुट: चूँकि Id 2 में एक NULL मान है, इसलिए उसके किसी भी मान को SUM में नहीं जोड़ा जाएगा। केवल Id 1 के मान जुड़ेंगे (200 + 300 + 500 = 1000)।

आउटपुट

+------+-------------+
| Id   | SUM(Amount) |
+------+-------------+
| 1    | 1000        |
+------+-------------+
  1. - MySQL में पंक्तियों के मान जोड़कर परिणाम सॉर्ट करना

    GROUP BY और ORDER BY से समूहवार योग और क्रम SUM() और GROUP BY से प्रत्येक समूह का योग निकालें, फिर ORDER BY से परिणाम क्रमबद्ध करें। तालिका और डेटा (Chris, 45), (David, 98), (Bob, 58); क्वेरी: नामवार कुल अंक, अवरोही क्रम ORDER BY TotalSum DESC; परिणाम +-------------+----------+ | StudentName

  1. - MySQL में IF() और IS NULL से कॉलम अपडेट करना

    शर्ती कॉलम अपडेट: यदि NULL तो अपडेट करें, अन्यथा नहीं IF() फ़ंक्शन और IS NULL प्रॉपर्टी का उपयोग करके एक कॉलम को अपडेट करें यदि वह NULL है, अन्यथा दूसरा कॉलम अपडेट करें, और यदि दोनों NULL नहीं हैं तो कुछ न करें। पहले टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1976 ( FirstName varchar(

  1. - MySQL क्वेरी: सकारात्मक मान वाली पंक्तियों के लिए TRUE लौटाएं

    समाधान IF() फंक्शन का उपयोग करके सकारात्मक मान के लिए TRUE (1), नकारात्मक के लिए FALSE (0) लौटाएं। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2038 (Value) VALUES (57), (-100), (-78), (78), (91), (-34); क्वेरी 0, TRUE, FALSE) AS Result FROM DemoTable2038; परिणाम +----+-------+--------+ | Id | Value