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

Tổng hợp Price theo Id trùng lặp trong MySQL với SUM() GROUP BY

Giới thiệu

Sử dụng hàm tổng hợp SUM() kết hợp GROUP BY để cộng dồn giá trị Price cho mỗi nhóm Id trùng lặp.

Ví dụ thực hành

1. Tạo bảng DemoTable850

mysql> CREATE TABLE DemoTable850 (Id INT, Price INT);

2. Chèn dữ liệu (Id=1 xuất hiện 3 lần, Id=2 xuất hiện 2 lần)

mysql> INSERT INTO DemoTable850 VALUES (1,90),(2,100),(2,50),(1,80),(1,60);

3. Tổng Price cho Id = 1

mysql> SELECT Id, SUM(Price) FROM DemoTable850 WHERE Id = 1;

4. Kết quả

+------+------------+
| Id   | SUM(Price) |
+------+------------+
|    1 |        230 |
+------+------------+

Mở rộng: Tổng cho TẤT CẢ Id (GROUP BY)

mysql> SELECT Id, SUM(Price) AS TotalPrice FROM DemoTable850 GROUP BY Id;
+------+------------+
| Id   | TotalPrice |
+------+------------+
|    1 |        230 |
|    2 |        150 |
+------+------------+

Các hàm tổng hợp thường dùng với GROUP BY

HàmÝ nghĩa
SUM(col)Tổng
AVG(col)Trung bình
COUNT(*)Số hàng
COUNT(col)Số giá trị không NULL
MIN(col)Giá trị nhỏ nhất
MAX(col)Giá trị lớn nhất
GROUP_CONCAT(col)Nối chuỗi

Lưu ý

  • Cột trong SELECT phải nằm trong GROUP BY hoặc là hàm tổng hợp (trừ MySQL với ONLY_FULL_GROUP_BY tắt).
  • Index trên Id giúp GROUP BY Id nhanh hơn.
  • WHERE Id = 1 lọc trước khi gom nhóm; HAVING SUM(Price) > 200 lọc sau khi gom nhóm.