MySQL-এ ডেট কলামের মাস অনুযায়ী গ্রুপ করে যোগফল (SUM) বের করার জন্য GROUP BY MONTH() ব্যবহার করা হয়। বর্ষও গ্রুপে রাখা ভালো প্র্যাকটিস।
টেবিল এবং ডেটা
CREATE TABLE DemoTable1628 (
PurchaseDate DATE,
Amount INT
);
INSERT INTO DemoTable1628 VALUES('2019-01-10',1500);
INSERT INTO DemoTable1628 VALUES('2019-10-10',2000);
INSERT INTO DemoTable1628 VALUES('2019-10-24',100);
INSERT INTO DemoTable1628 VALUES('2019-11-10',500);
INSERT INTO DemoTable1628 VALUES('2019-12-10',1600);
INSERT INTO DemoTable1628 VALUES('2019-10-10',900);
কুয়েরি
SELECT
MONTH(PurchaseDate) AS Month,
YEAR(PurchaseDate) AS Year,
SUM(Amount) AS TotalAmount
FROM DemoTable1628
GROUP BY MONTH(PurchaseDate), YEAR(PurchaseDate);
ফলাফল
+-------+------+-------------+
| Month | Year | TotalAmount |
+-------+------+-------------+
| 1 | 2019 | 1500 |
| 10 | 2019 | 3000 |
| 11 | 2019 | 500 |
| 12 | 2019 | 1600 |
+-------+------+-------------+
গুরুত্বপূর্ণ নোট
GROUP BY MONTH(...), YEAR(...)— বর্ষ ও মাস দুটোই গ্রুপে রাখুন, নাহলে ২০১৮ এবং ২০১৯-এর জানুয়ারি একসাথে গ্রুপ হবেORDER BY Year, Monthযোগ করলে ক্রমানুসারে আসবে- ইন্ডেক্স ব্যবহার করতে চাইলে রেঞ্জ কুয়েরি ভালো:
WHERE PurchaseDate >= '2019-01-01' AND PurchaseDate < '2020-01-01'