Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tổng giá trị theo tháng trong MySQL với EXTRACT(MONTH FROM date)

Tạo bảng mua hàng

mysql> CREATE TABLE DemoTable1415 (
    -> ProductPurchaseDate DATE,
    -> ProductPrice INT
    -> );
INSERT INTO DemoTable1415 VALUES
('2019-01-12',560),('2018-01-14',1060),('2017-03-21',780),('2016-09-01',800),('2019-01-14',100);

Dữ liệu

mysql> SELECT * FROM DemoTable1415;
+---------------------+--------------+
| ProductPurchaseDate | ProductPrice |
+---------------------+--------------+
| 2019-01-12          | 560          |
| 2018-01-14          | 1060         |
| 2017-03-21          | 780          |
| 2016-09-01          | 800          |
| 2019-01-14          | 100          |
+---------------------+--------------+

Truy vấn: EXTRACT(MONTH) và GROUP BY tháng

mysql> SELECT EXTRACT(MONTH FROM ProductPurchaseDate) AS month,
    -> SUM(ProductPrice) AS total_value
    -> FROM DemoTable1415
    -> GROUP BY month;

Kết quả: Tổng giá trị tháng 1, 3, 9 (gộp cả năm)

+-------+-------------+
| month | total_value |
+-------+-------------+
| 1     | 1720        |
| 3     | 780         |
| 9     | 800         |
+-------+-------------+

Lưu ý: EXTRACT(MONTH FROM date) trả về 1-12. Nhóm theo tháng sẽ gộp các năm khác nhau cùng tháng. Muốn phân biệt năm: GROUP BY EXTRACT(YEAR_MONTH FROM date) hoặc GROUP BY YEAR(date), MONTH(date).