MONTH() फंक्शन के साथ विशिष्ट महीने के रिकॉर्ड्स का योग
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
PurchaseDate DATE,
SalePrice INT
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable (PurchaseDate, SalePrice) VALUES ('2018-01-10', 450);
mysql> INSERT INTO DemoTable (PurchaseDate, SalePrice) VALUES ('2019-12-25', 1000);
mysql> INSERT INTO DemoTable (PurchaseDate, SalePrice) VALUES ('2016-12-02', 5560);
mysql> INSERT INTO DemoTable (PurchaseDate, SalePrice) VALUES ('2015-02-20', 4550);
mysql> INSERT INTO DemoTable (PurchaseDate, SalePrice) VALUES ('2015-12-11', 4110);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+--------------+-----------+ | Id | PurchaseDate | SalePrice | +----+--------------+-----------+ | 1 | 2018-01-10 | 450 | | 2 | 2019-12-25 | 1000 | | 3 | 2016-12-02 | 5560 | | 4 | 2015-02-20 | 4550 | | 5 | 2015-12-11 | 4110 | +----+--------------+-----------+
केवल 12वें महीने (दिसंबर) के SalePrice का योग निकालने के लिए क्वेरी:
mysql> SELECT SUM(SalePrice) FROM DemoTable
WHERE MONTH(PurchaseDate) = 12;
उपरोक्त क्वेरी केवल चयनित महीने यानी 12वें महीने दिसंबर के लिए रिकॉर्ड्स जोड़ती है:
2019-12-25 2016-12-02 2015-12-11
आउटपुट:
+----------------+ | SUM(SalePrice) | +----------------+ | 10670 | +----------------+
व्याख्या:
- MONTH(PurchaseDate): डेट से महीना (1-12) निकालता है
- WHERE MONTH(PurchaseDate) = 12: केवल दिसंबर महीने की पंक्तियों को फ़िल्टर करता है
- SUM(SalePrice): फ़िल्टर की गई पंक्तियों के SalePrice को जोड़ता है: 1000 + 5560 + 4110 = 10670
साल और महीना दोनों के लिए फ़िल्टर:
SELECT SUM(SalePrice) FROM DemoTable WHERE YEAR(PurchaseDate) = 2019 AND MONTH(PurchaseDate) = 12;
प्रदर्शन नोट: डेट कॉलम पर फंक्शन (MONTH, YEAR) का उपयोग इंडेक्स उपयोग को रोक सकता है। बड़े टेबल्स के लिए रेंज क्वेरी बेहतर है:
WHERE PurchaseDate >= '2019-12-01' AND PurchaseDate < '2020-01-01'