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

Cộng dồn bản ghi từ các giá trị trùng lặp trong cột khác với MySQL

Tổng hợp giá trị theo nhóm với SUM() và GROUP BY

Gom nhóm các bản ghi trùng lặp cột Name và tính tổng cột Value.

Tạo bảng và dữ liệu

mysql> create table DemoTable ( 
    Name varchar(20), 
    Value int 
); 
Query OK, 0 rows affected (2.08 sec)
mysql> insert into DemoTable values('Chris',50); 
mysql> insert into DemoTable values('David',90); 
mysql> insert into DemoTable values('Chris',60); 
mysql> insert into DemoTable values('Bob',100); 
mysql> insert into DemoTable values('David',80);

Dữ liệu gốc

+-------+-------+ 
| Name  | Value | 
+-------+-------+ 
| Chris | 50    | 
| David | 90    | 
| Chris | 60    | 
| Bob   | 100   | 
| David | 80    | 
+-------+-------+

Truy vấn gom nhóm và tính tổng

mysql> select Name, sum(Value) as GrandTotal from DemoTable group by Name;

Kết quả

+-------+------------+ 
| Name  | GrandTotal | 
+-------+------------+ 
| Chris | 110        | 
| David | 170        | 
| Bob   | 100        | 
+-------+------------+

Giải thích:

  • Chris: 50 + 60 = 110
  • David: 90 + 80 = 170
  • Bob: 100 (chỉ 1 bản ghi)

Mở rộng: Thêm COUNT(*) để biết số lần xuất hiện, AVG(Value) cho trung bình, MIN/MAX cho giá trị cực trị.

SELECT Name, COUNT(*) as SoLan, SUM(Value) as Tong, AVG(Value) as TB 
FROM DemoTable GROUP BY Name;