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

Gom nhóm cột và hiển thị tổng giá trị tương tự trong MySQL

Sử dụng GROUP BY kết hợp SUM() và mệnh đề HAVING để lọc nhóm sau khi gom.

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

mysql> CREATE TABLE DemoTable782(Name VARCHAR(100), Score INT); 
Query OK, 0 rows affected (1.18 sec)

mysql> INSERT INTO DemoTable782 VALUES 
('John',156), ('Carol',250), ('Bob',140), ('John',126), 
('John',140), ('Bob',280), ('Bob',250), ('Carol',189), ('Carol',299); 
Query OK, 9 rows affected

Truy vấn gom nhóm, tính tổng và lọc tổng > 500

mysql> SELECT Name, SUM(Score) AS Total 
FROM DemoTable782 
GROUP BY Name 
HAVING Total > 500;

Kết quả:

+-------+-------+
| Name  | Total |
+-------+-------+
| Carol | 738   |
| Bob   | 670   |
+-------+-------+

Lưu ý: HAVING dùng cho điều kiện trên nhóm (sau GROUP BY), còn WHERE dùng cho điều kiện trên hàng (trước GROUP BY). Không thể dùng WHERE Total > 500 ở đây.