MySQL में दिनांक सीमा के भीतर मानों का योग
दिनांक सीमा के भीतर संख्यात्मक मानों का योग करने के लिए, BETWEEN ऑपरेटर के साथ SUM() एग्रीगेट फ़ंक्शन का उपयोग करें। यह बिक्री रिपोर्ट, वित्तीय विश्लेषण और समय-श्रृंखला डेटा के लिए आदर्श है।
उदाहरण: तिमाही खरीद योग की गणना
पहले एक खरीद टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable1444 (
-> Value INT,
-> PurchaseDate DATETIME
-> );
Query OK, 0 rows affected (0.45 sec)
mysql> INSERT INTO DemoTable1444 VALUES
-> (40, '2019-01-10'), (100, '2019-10-03'),
-> (170, '2019-11-21'), (70, '2018-12-05');
Query OK, 4 rows affected (0.09 sec)
mysql> SELECT * FROM DemoTable1444;
+-------+---------------------+
| Value | PurchaseDate |
+-------+---------------------+
| 40 | 2019-01-10 00:00:00 |
| 100 | 2019-10-03 00:00:00 |
| 170 | 2019-11-21 00:00:00 |
| 70 | 2018-12-05 00:00:00 |
+-------+---------------------+
4 rows in set (0.00 sec)
दिनांक सीमा के साथ SUM क्वेरी
mysql> SELECT SUM(Value) FROM DemoTable1444
-> WHERE PurchaseDate BETWEEN '2019-10-02' AND '2019-12-31';
परिणाम
+------------+ | sum(Value) | +------------+ | 270 | +------------+ 1 row in set (0.02 sec)
व्याख्या
- BETWEEN समावेशी है: दोनों अंत बिंदु शामिल हैं
2019-10-03और2019-11-21सीमा में हैं → 100 + 170 = 2702019-01-10और2018-12-05बाहर हैं
सर्वोत्तम अभ्यास
- इंडेक्स: दिनांक कॉलम पर इंडेक्स बनाएं:
CREATE INDEX idx_purchase_date ON DemoTable1444(PurchaseDate) - दिनांक स्थिरांक: अस्पष्टता से बचने के लिए ISO प्रारूप (YYYY-MM-DD) का उपयोग करें
- DATETIME बनाम DATE: DATETIME के लिए, BETWEEN में समय घटक शामिल होता है; दिनांक सीमाओं के लिए DATE प्रकार का उपयोग करने पर विचार करें
- पैरामीटरीकृत क्वेरी: एप्लिकेशन कोड में SQL इंजेक्शन रोकने के लिए प्लेसहोल्डर का उपयोग करें
वैकल्पिक सिंटैक्स
-- स्पष्ट तुलना के साथ समान SELECT SUM(Value) FROM DemoTable1444 WHERE PurchaseDate >= '2019-10-02' AND PurchaseDate <= '2019-12-31';