Tổng hợp có điều kiện với SUM() và GROUP BY trong MySQL
Sử dụng hàm tổng hợp SUM() kết hợp GROUP BY để tính tổng theo nhóm.
Tạo bảng và dữ liệu
mysql> create table DemoTable (
EmployeeName varchar(20),
JoiningDate date,
Salary int
);
Query OK, 0 rows affected (0.54 sec)
mysql> insert into DemoTable values('David','2019-11-02',400);
mysql> insert into DemoTable values('Robert','2018-11-25',100);
mysql> insert into DemoTable values('Bob','2019-12-14',600);
mysql> insert into DemoTable values('Carol','2019-11-03',300);
Truy vấn tổng lương theo năm/tháng nhập việc
mysql> select year(JoiningDate) as JoiningYear,
month(JoiningDate) as JoiningMonth,
sum(Salary) as Total,
group_concat(EmployeeName) as Name
from DemoTable
group by JoiningYear,JoiningMonth;
Kết quả
+-------------+--------------+-------+-------------+ | JoiningYear | JoiningMonth | Total | Name | +-------------+--------------+-------+-------------+ | 2018 | 11 | 100 | Robert | | 2019 | 11 | 700 | David,Carol | | 2019 | 12 | 600 | Bob | +-------------+--------------+-------+-------------+
Ứng dụng: Kỹ thuật này phổ biến trong báo cáo doanh thu, lương, thống kê theo thời gian. Có thể thêm HAVING để lọc nhóm (ví dụ: HAVING Total > 500).