MySQL में MONTHNAME() और GROUP BY का उपयोग करके महीनेवार डेटा एग्रीगेट करना
आप MONTHNAME() या MONTH() फ़ंक्शन के साथ GROUP BY और SUM() का उपयोग करके महीने के आधार पर डेटा समूहित कर सकते हैं।
उदाहरण
टेबल बनाएं:
mysql> create table SelectPerMonthDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Price int,
-> PurchaseDate datetime
-> );
विभिन्न महीनों का डेटा डालें:
mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(600, date_add(now(), interval -1 month)); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(600, date_add(now(), interval 2 month)); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(400, now()); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(800, date_add(now(), interval 3 month)); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(900, date_add(now(), interval 4 month)); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(100, date_add(now(), interval 4 month)); mysql> insert into SelectPerMonthDemo(Price, PurchaseDate) values(1200, date_add(now(), interval -1 month));
महीने के नाम के साथ योग
mysql> select monthname(PurchaseDate) as MONTHNAME, sum(Price)
-> from SelectPerMonthDemo
-> group by monthname(PurchaseDate);
परिणाम:
+-----------+------------+ | MONTHNAME | sum(Price) | +-----------+------------+ | January | 1800 | | April | 600 | | February | 400 | | May | 800 | | June | 1000 | +-----------+------------+
महीने की संख्या के साथ योग
mysql> select month(PurchaseDate), sum(Price)
-> from SelectPerMonthDemo
-> group by month(PurchaseDate);
परिणाम:
+---------------------+------------+ | month(PurchaseDate) | sum(Price) | +---------------------+------------+ | 1 | 1800 | | 4 | 600 | | 2 | 400 | | 5 | 800 | | 6 | 1000 | +---------------------+------------+
वर्ष और महीना दोनों के अनुसार समूह
SELECT YEAR(PurchaseDate) AS Year, MONTH(PurchaseDate) AS Month, SUM(Price) AS Total FROM SelectPerMonthDemo GROUP BY YEAR(PurchaseDate), MONTH(PurchaseDate) ORDER BY Year, Month;
प्रदर्शन टिप
बड़ी टेबल पर दिनांक कॉलम पर इंडेक्स बनाएं और WHERE PurchaseDate >= '2024-01-01' जैसे रेंज फ़िल्टर का उपयोग करें।