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

MySQL में शर्त के आधार पर कॉलम का SUM कैसे निकालें

WHERE क्लॉज के साथ कंडीशनल SUM

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ProductAmount INT,
    CustomerCountryName VARCHAR(10)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (190, 'US');
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (200, 'UK');
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (1500, 'AUS');
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (2010, 'US');
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (7890, 'UK');
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES (500, 'US');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------------+---------------+---------------------+
| CustomerId | ProductAmount | CustomerCountryName |
+------------+---------------+---------------------+
| 1          | 190           | US                  |
| 2          | 200           | UK                  |
| 3          | 1500          | AUS                 |
| 4          | 2010          | US                  |
| 5          | 7890          | UK                  |
| 6          | 500           | US                  |
+------------+---------------+---------------------+

देश "US" के ग्राहकों के लिए ProductAmount का योग निकालने के लिए क्वेरी:

mysql> SELECT SUM(ProductAmount) AS Total_Amount
    FROM DemoTable
    WHERE CustomerCountryName = 'US';

आउटपुट:

+--------------+
| Total_Amount |
+--------------+
| 2700         |
+--------------+

व्याख्या: WHERE क्लॉज केवल उन्हीं पंक्तियों को फ़िल्टर करता है जहां CustomerCountryName 'US' है (रो 1, 4, 6), फिर SUM() केवल उन्हीं पंक्तियों के ProductAmount को जोड़ता है: 190 + 2010 + 500 = 2700।

वैकल्पिक तरीका - CASE के साथ SUM:

SELECT SUM(CASE WHEN CustomerCountryName = 'US' THEN ProductAmount ELSE 0 END) AS Total_Amount
FROM DemoTable;

यह तरीका उपयोगी होता है जब आपको एक ही क्वेरी में कई शर्तों के लिए अलग-अलग योग निकालने हों।

  1. - MySQL में शर्त के साथ कॉलम का योग प्राप्त करना

    अंकगणितीय ऑपरेटर के साथ GROUP BY से श्रेणीवार योग DIV (पूर्णांक विभाजन) ऑपरेटर का उपयोग करके आईडी रेंज के आधार पर समूह बनाकर योग निकाला जा सकता है। तालिका और डेटा (125, 2100), (128, 2900); क्वेरी: ProductId DIV 10 द्वारा समूह योग GROUP BY ProductId DIV 10; परिणाम +------------------+---------

  1. - MySQL में शर्त के आधार पर दूसरे कॉलम का योग (SUM) कैसे करें?

    MySQL में SUM() एग्रीगेट फ़ंक्शन के साथ GROUP BY क्लॉज का उपयोग करके एक कॉलम के मानों का योग दूसरी कॉलम की शर्त के आधार पर निकाला जा सकता है। उदाहरण परिदृश्य कर्मचारी वेतन डेटा को ज्वाइनिंग वर्ष और महीने के अनुसार समूहित करके कुल वेतन निकालना। तालिका और डेटा mysql> CREATE TABLE DemoTable (

  1. - ईमेल पते के आधार पर MySQL कॉलम अपडेट करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> EmailAddress varchar(20), -> Score int -> ); Query OK, 0 rows affected (1.05 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris@gmail.com,67); Query OK, 1 row affe