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.