Sử dụng mệnh đề GROUP BY kết hợp hàm tổng hợp SUM() để gom nhóm và tính tổng.
Tạo bảng điểm số
mysql> CREATE TABLE DemoTable(
Name VARCHAR(100),
Score INT
);
Query OK, 0 rows affected (0.70 sec)
Chèn dữ liệu (có trùng tên)
mysql> INSERT INTO DemoTable VALUES('Adam', 50);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Bob', 80);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('Adam', 70);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Adam', 10);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('Carol', 98);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Bob', 10);
Query OK, 1 row affected (0.08 sec)
Truy vấn gom nhóm và tính tổng
mysql> SELECT Name, SUM(Score) FROM DemoTable GROUP BY Name;
Kết quả:
+-------+------------+ | Name | SUM(Score) | +-------+------------+ | Adam | 130 | | Bob | 90 | | Carol | 98 | +-------+------------+ 3 rows in set (0.00 sec)
Mở rộng: Thêm HAVING SUM(Score) > 100 để chỉ hiển thị nhóm có tổng lớn hơn 100.