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

Tìm tổng các số nguyên từ nhiều hàng MySQL trong cùng cột?

Tính tổng cột (SUM) trong MySQL

Sử dụng hàm tổng hợp SUM() để cộng dồn tất cả giá trị trong một cột số.

Ví dụ minh họa

Tạo bảng DemoTable739:

mysql> CREATE TABLE DemoTable739 (Price INT);
Query OK, 0 rows affected (0.65 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable739 VALUES(100);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable739 VALUES(50);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable739 VALUES(1200);
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable739 VALUES(500);
Query OK, 1 row affected (0.37 sec)
mysql> INSERT INTO DemoTable739 VALUES(800);
Query OK, 1 row affected (0.20 sec)

Xem dữ liệu:

mysql> SELECT * FROM DemoTable739;
+-------+
| Price |
+-------+
| 100   |
| 50    |
| 1200  |
| 500   |
| 800   |
+-------+
5 rows in set (0.00 sec)

Tính tổng cột Price:

mysql> SELECT SUM(Price) AS Total_Price FROM DemoTable739;

Kết quả:

+-------------+
| Total_Price |
+-------------+
| 2650        |
+-------------+
1 row in set (0.00 sec)

Mở rộng: SUM với điều kiện và nhóm

-- Tổng có điều kiện (chỉ giá > 200)
SELECT SUM(Price) FROM DemoTable739 WHERE Price > 200;

-- Tổng theo nhóm (cần cột nhóm)
SELECT Category, SUM(Price) FROM Products GROUP BY Category;

-- Tổng có trọng số
SELECT SUM(Price * Quantity) AS Revenue FROM OrderItems;

-- Tổng nhiều cột
SELECT SUM(Price), SUM(Discount), SUM(Tax) FROM Orders;

Xử lý NULL

  • SUM() tự động bỏ qua NULL
  • Nếu tất cả giá trị là NULL → kết quả là NULL (không phải 0)
  • Để trả về 0 thay vì NULL: COALESCE(SUM(Price), 0) hoặc IFNULL(SUM(Price), 0)

Hàm tổng hợp liên quan

HàmChức năngVí dụ
SUM()TổngSUM(price)
AVG()Trung bìnhAVG(score)
COUNT()Đếm hàngCOUNT(*)
MIN()Giá trị nhỏ nhấtMIN(age)
MAX()Giá trị lớn nhấtMAX(salary)
STD()Độ lệch chuẩnSTD(height)
VARIANCE()Phương saiVARIANCE(score)