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

Tính tổng cột cho các bản ghi trùng lặp tên trong MySQL

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.