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

Truy vấn SELECT và SUM với GROUP BY trong MySQL

Để 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)