Sum trong SQL là một trong các hàm căn bản cho phép bạn tính tổng của cột dữ liệu truyền vào
Cú pháp
Cú pháp cơ bản của hàm Sum như sau:
SUM([DISTINCT] column)
Như bạn thấy, hàm này chỉ yêu cầu một đối số: tên cột. Các giá trị được cung cấp trong đối số được hàm SUM() tổng hợp và trả về. Từ khóa DISTINCT là tùy chọn; khi được sử dụng.
Hãy cùng đi qua các ví dụ dưới đây để hiểu hơn về hàm SUM.
Ta sẽ sử dụng bảng USERS dưới đây làm bảng dữ liệu xuyên suốt các
+----+----------+-----------+-----------+ | ID | NAME | SALARY | MONTH | +----+----------+-----------+-----------+ | 1 | kien | 1000 | 1 | | 2 | ngoc | 2000 | 1 | | 3 | nghia | 3000 | 1 | | 4 | trang | 1000 | 2 | | 5 | ngoc | 1000 | 2 | +----+----------+-----------+-----------+
Ví dụ 1: Sử dụng Sum trong sql với một cột
SELECT SUM(SALARY) AS TOTAL_SALARY FROM USERS;
Trong truy vấn này, mình chỉ sử dụng SUM() trong câu lệnh SELECT.Hàm SUM() trả về tổng các gia trị SALARY trong bảng USERS. Tên của cột kết quả mới (ở dây sử dụng alias) là TOTAL_SALARY.
Đây là kết quả:
TOTAL_SALARY 8000
Như bạn thấy, tổng các giá trị trong cột SALARY trong USERS của bảng là 8000. Nếu một trong các hàng có NULL trong cột này, SUM() sẽ bỏ qua hàng này khỏi phép tính. Lưu ý rằng chỉ có một hàng trong kết quả trả về và phần chi tiết không được bao gồm trong đây
Ví dụ 2: Sử dụng Sum trong sql với GROUP BY
Thông thường, hàm SUM thường được sử dụng với mệnh đề GROUP BY. Với GROUP BY, các giá trị tổng được tính cho một nhóm hàng. Nếu bạn chưa quen với việc sử dụng GROUP BY, hãy bớt chút thời gian để tìm hiểu trước khi đọc phần này
Với truy vấn phía dưới, bạn có thể tính tổng SALARY của mõi cá nhân
SELECT NAME, SUM(SALARY) AS TOTAL_SALARY FROM USERS GROUP BY NAME;
Và kết quả được trả về bởi truy vấn này là:
+--------+---------------+ | NAME | TOTAL_SALARY | +--------+---------------+ | kien | 1000 | | ngoc | 3000 | | trang | 3000 | | nghia | 1000 | +--------+---------------+
Trong trường hợp này, cột NAME nằm trong câu SELECT vì chúng ta muốn xem tên mà tổng được tính. Tiếp theo là hàm SUM(), tính tổng các giá trị SALARY của người dùng đó. Thêm mệnh đề GROUP BY có nghĩa là những người dùng có cùng tên trong cột danh mục được đưa vào một nhóm; tổng được tính cho từng nhóm riêng biệt. Cuối cùng, hãy nhớ rằng mệnh đề GROUP BY phải luôn đứng sau FROM.
Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa: