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

MySQL में SUM() फ़ंक्शन का उपयोग करके एक ही कॉलम की एकाधिक पंक्तियों का योग निकालना

MySQL में किसी कॉलम के सभी मानों का योग (sum) निकालने के लिए SUM() एग्रीगेट फ़ंक्शन का उपयोग करें। यह संख्यात्मक कॉलम्स पर काम करता है।

सिंटैक्स

SELECT SUM(column_name) AS alias_name FROM table_name;

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

1. टेबल बनाएं और डेटा डालें

mysql> CREATE TABLE DemoTable739 (Price INT);
Query OK, 0 rows affected (0.65 sec)

mysql> INSERT INTO DemoTable739 VALUES (100), (50), (1200), (500), (800);
Query OK, 5 rows affected (0.20 sec)

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

mysql> SELECT * FROM DemoTable739;
+-------+
| Price |
+-------+
| 100   |
| 50    |
| 1200  |
| 500   |
| 800   |
+-------+
5 rows in set (0.00 sec)

3. कुल योग निकालें

mysql> SELECT SUM(Price) AS Total_Price FROM DemoTable739;
+-------------+
| Total_Price |
+-------------+
| 2650        |
+-------------+
1 row in set (0.00 sec)

उन्नत SUM उपयोग

शर्ती योग (CASE WHEN)

SELECT 
    SUM(CASE WHEN Price > 500 THEN Price ELSE 0 END) AS high_value_sum,
    SUM(CASE WHEN Price <= 500 THEN Price ELSE 0 END) AS low_value_sum
FROM DemoTable739;

ग्रुप के अनुसार योग

SELECT category, SUM(price) FROM products GROUP BY category;

विंडो फ़ंक्शन के साथ चल योग (MySQL 8.0+)

SELECT 
    Price,
    SUM(Price) OVER (ORDER BY Id ROWS UNBOUNDED PRECEDING) AS running_total
FROM DemoTable739;

DISTINCT के साथ योग (अद्वितीय मानों का योग)

SELECT SUM(DISTINCT Price) FROM DemoTable739;

NULL मान संभालना

  • SUM() NULL मानों को अनदेखा करता है (उन्हें 0 के रूप में मानता है)
  • यदि सभी मान NULL हैं, तो परिणाम NULL होता है (0 नहीं)
  • COALESCE(SUM(col), 0) का उपयोग करके 0 सुनिश्चित करें
SELECT COALESCE(SUM(Price), 0) FROM DemoTable739 WHERE Price > 10000;  -- 0 लौटाता है

संबंधित एग्रीगेट फ़ंक्शन्स

फ़ंक्शनविवरण
SUM()योग
AVG()औसत
MIN()न्यूनतम
MAX()अधिकतम
COUNT()गिनती
STDDEV()मानक विचलन
VARIANCE()विचरण

प्रदर्शन टिप

कॉलम पर इंडेक्स होने से SUM() के लिए पूर्ण टेबल स्कैन अभी भी आवश्यक है (एग्रीगेशन के लिए)। कवरिंग इंडेक्स मदद कर सकता है यदि WHERE क्लॉज चयनात्मक है।

  1. - MySQL में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(

  1. - MySQL में एक ही INSERT से कई पंक्तियाँ एक साथ कैसे डालें?

    मल्टी-रो INSERT सिंटैक्स insert into yourTableName values (val1, val2, ...), (val1, val2, ...), (val1, val2, ...); उदाहरण (4,Carol,Taylor,20); परिणाम +------+------------+-----------+------+ | id | first_name | last_name | age | +------+------------+-----------+------+ | 1 | John

  1. - MySQL में GROUP BY HAVING से समान ID वाली पंक्तियों का SUM निकालें

    GROUP BY + HAVING = 2000; उदाहरण डेटा insert into demo84 values(1,2000), (1,2000), (2,1800), (2,2200), (3,1700); परिणाम: कुल ≥ 2000 वाले ID +------+-------+ | id | Total | +------+-------+ | 1 | 4000 | | 2  | 4000 | +------+-------+ ID 1: 2000+2000 = 4000 ID 2: 1800+2200 = 4000 I