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

MySQL में उपयोगकर्ता-परिभाषित वेरिएबल का उपयोग करके रनिंग सबटोटल (कम्युलेटिव योग) की गणना करना

MySQL में उपयोगकर्ता-परिभाषित वेरिएबल (@variable) का उपयोग करके एक कॉलम का रनिंग टोटल (कम्युलेटिव योग) दूसरी कॉलम में गणना करें और स्टोर करें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Amount INT,
    -> SubTotal INT
    -> );
Query OK, 0 rows affected (0.65 sec)
mysql> INSERT INTO DemoTable(Amount) VALUES(50), (60), (70), (80);

मौजूदा डेटा देखना (SubTotal NULL है)

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------+----------+
| Amount | SubTotal |
+--------+----------+
|     50 | NULL     |
|     60 | NULL     |
|     70 | NULL     |
|     80 | NULL     |
+--------+----------+
4 rows in set (0.00 sec)

सबटोटल की गणना और अपडेट करना

mysql> SET @sum := 0;
Query OK, 0 rows affected (0.10 sec)

mysql> UPDATE DemoTable SET SubTotal = (@sum := @sum + Amount);
Query OK, 4 rows affected (0.19 sec)
Rows matched: 4  Changed: 4  Warnings: 0

अपडेट के बाद डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+--------+----------+
| Amount | SubTotal |
+--------+----------+
|     50 |       50 |
|     60 |      110 |
|     70 |      180 |
|     80 |      260 |
+--------+----------+
4 rows in set (0.00 sec)

व्याख्या:

  1. SET @sum := 0 वेरिएबल को 0 से आरंभ करता है
  2. @sum := @sum + Amount प्रत्येक पंक्ति के लिए वर्तमान योग में Amount जोड़ता है और नया योग निर्दिष्ट करता है
  3. पंक्तियों को टेबल क्रम में संसाधित किया जाता है (क्लस्टर्ड इंडेक्स क्रम या सम्मिलन क्रम)

महत्वपूर्ण: विश्वसनीय क्रम के लिए, ORDER BY के साथ सबक्वेरी का उपयोग करें:

UPDATE DemoTable t
JOIN (
    SELECT Id, (@sum := @sum + Amount) AS running_total
    FROM DemoTable, (SELECT @sum := 0) vars
    ORDER BY Id
) sq ON t.Id = sq.Id
SET t.SubTotal = sq.running_total;

MySQL 8.0+ में विंडो फ़ंक्शन SUM(Amount) OVER (ORDER BY Id) का उपयोग करें।

  1. - MySQL में ALTER TABLE से कॉलम कैसे जोड़ें?

    ALTER TABLE ADD COLUMN सिंटैक्स MySQL में मौजूदा टेबल में नया कॉलम जोड़ने के लिए ALTER TABLE ... ADD COLUMN स्टेटमेंट का उपयोग करें। सिंटैक्स ALTER TABLE yourTableName ADD COLUMN yourColumnName yourDataType DEFAULT yourValue; चरण-दर-चरण उदाहरण मूल टेबल बनाएं: ); टेबल संरचना जांचें: DESC alter

  1. - MySQL में ALTER TABLE MODIFY से मौजूदा कॉलम पर NOT NULL कंस्ट्रेंट जोड़ना

    MySQL में पहले से बने कॉलम पर NOT NULL कंस्ट्रेंट जोड़ने के लिए ALTER TABLE ... MODIFY स्टेटमेंट का उपयोग किया जाता है, जिसमें कॉलम परिभाषा दोहराई जाती है और NOT NULL जोड़ा जाता है। उदाहरण के लिए टेबल बनाना (StudentName बिना NOT NULL) mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AU

  1. - Python में MySQL का उपयोग करके टेबल में नया कॉलम जोड़ना

    कभी-कभी किसी मौजूदा टेबल में नया कॉलम जोड़ने की आवश्यकता होती है। मान लीजिए हमारे पास Students टेबल है जिसमें Name, Age, Roll No जैसे कॉलम हैं। हम इसमें Address नाम का एक नया कॉलम जोड़ना चाहते हैं। यह ALTER कमांड का उपयोग करके किया जा सकता है। ALTER कमांड का उपयोग डेटाबेस में कॉलम को संशोधित, ड्रॉप