Để tính tổng, hãy sử dụng hàm tổng hợp SUM(). Kết hợp với đó, nhóm dữ liệu bằng GROUP BY của MySQL. Hãy cùng tạo một bảng trước:
mysql> CREATE TABLE DemoTable (
-> ProductName VARCHAR(20),
-> ProductQuantity INT,
-> ProductPrice INT
-> ); Query OK, 0 rows affected (0.63 sec)
Chèn một số bản ghi vào bảng bằng lệnh INSERT:
mysql> INSERT INTO DemoTable VALUES('Product-1',2,50); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('Product-2',3,80); Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('Product-2',4,100); Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES('Product-1',4,150); Query OK, 1 row affected (0.11 sec)
Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:
mysql> SELECT * FROM DemoTable;
Kết quả sẽ như sau:
+-------------+-----------------+--------------+ | ProductName | ProductQuantity | ProductPrice | +-------------+-----------------+--------------+ | Product-1 | 2 | 50 | | Product-2 | 3 | 80 | | Product-2 | 4 | 100 | | Product-1 | 4 | 150 | +-------------+-----------------+--------------+ 4 rows in set (0.00 sec)
Dưới đây là truy vấn để SELECT có GROUP BY trong MySQL:
mysql> SELECT *, SUM(ProductQuantity * ProductPrice) AS Total FROM DemoTable
-> GROUP BY ProductName;
Kết quả sẽ như sau:
+-------------+-----------------+--------------+-------+ | ProductName | ProductQuantity | ProductPrice | Total | +-------------+-----------------+--------------+-------+ | Product-1 | 2 | 50 | 700 | | Product-2 | 3 | 80 | 640 | +-------------+-----------------+--------------+-------+ 2 rows in set (0.00 sec)