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

Tổng cột theo điều kiện trong MySQL: SUM với WHERE

Tính tổng có điều kiện trong MySQL

Sử dụng hàm tổng hợp SUM() kết hợp với mệnh đề WHERE để chỉ cộng các giá trị thỏa mãn điều kiện cụ thể.

1. Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (
    CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ProductAmount INT,
    CustomerCountryName VARCHAR(10)
);
mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryName) VALUES
    (190, 'US'), (200, 'UK'), (1500, 'AUS'),
    (2010, 'US'), (7890, 'UK'), (500, 'US');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;

Kết quả:

+------------+---------------+---------------------+
| CustomerId | ProductAmount | CustomerCountryName |
+------------+---------------+---------------------+
| 1          | 190           | US                  |
| 2          | 200           | UK                  |
| 3          | 1500          | AUS                 |
| 4          | 2010          | US                  |
| 5          | 7890          | UK                  |
| 6          | 500           | US                  |
+------------+---------------+---------------------+

3. Truy vấn: Tổng ProductAmount cho khách hàng US

mysql> SELECT SUM(ProductAmount) AS Total_Amount
    FROM DemoTable
    WHERE CustomerCountryName = 'US';

4. Kết quả

+--------------+
| Total_Amount |
+--------------+
| 2700         |
+--------------+

Giải thích: 190 + 2010 + 500 = 2700 (chỉ 3 hàng có Country = 'US').

Mở rộng - Tổng theo nhiều nhóm:

SELECT CustomerCountryName, SUM(ProductAmount) AS Total_Amount
FROM DemoTable
GROUP BY CustomerCountryName;

Kết quả:

+---------------------+--------------+
| CustomerCountryName | Total_Amount |
+---------------------+--------------+
| US                  | 2700         |
| UK                  | 8090         |
| AUS                 | 1500         |
+---------------------+--------------+