Hàm SUM trong SQL Server
SUM trong SQL Server được dùng như thế nào? Bài viết sẽ cho bạn biết mọi điều cơ bản về cách dùng hàm SUM trong SQL Server.
Mô tả
Hàm SUM trong SQL Server trả về giá trị tổng của một cột, một tập hợp dữ liệu hoặc một biểu thức.
Cú pháp
Để sử dụng hàm SUM trong SQL Server, ta dùng cú pháp như sau:
SELECT SUM(cot)
FROM bang
[WHERE dieukien];
Tham số:
- cot: cột hoặc giá trị tính toán, biểu thức mà bạn muốn tính tổng
- bang: bảng dùng để lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.
- dieukien: tùy chọn. Điều kiện mà bản ghi phải đáp ứng để được chọn.
Lưu ý:
- Hàm SUM có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.
Ví dụ
Hãy xem và khám phá một số ví dụ về hàm SUM trong SQL Server.
Giả sử, ta có bảng dữ liệu như sau:
Ví dụ 1: Tính tổng số lượng số bài viết của website Quantrimang
SELECT SUM(Sobai) AS "Tong so bai"
FROM Quantrimang
WHERE Sobai > 100;
Result: Tong so bai 641
Ở ví dụ này ta cần đầu ra là giá trị tổng số bài của website, nên kết quả được tính bằng cách cộng tất cả giá trị ở cột Sobai có dữ liệu khác rỗng và lớn hơn 100 lại với nhau.
Ví dụ 2: Sử dụng DISTINCT
SELECT SUM(DISTINCT Sobai) AS "Tong so bai"
FROM Quantrimang
WHERE Sobai > 100;
Result: Tong so bai 540
Ví dụ này dùng từ khóa DISTINCT, nên những giá trị lặp lại chỉ được tính một lần. Trong bảng dữ liệu cho trước, giá trị “101” xuất hiện 2 lần, nhưng chỉ được tính một lần, cho nên tổng số dòng được tính sẽ là 4, kết quả được tính như sau:
152 + 101 + 122 + 165 = 540
Ví dụ 3: Tính giá trị tổng theo cột được chỉ định của các dòng được chọn
Để tính giá trị tổng theo cột được chỉ định của các dòng được chọn, ta sử dụng mệnh đề GROUP BY.
Ví dụ sau tính giá trị tổng của tất cả bản ghi liên quan tới một chuyên mục lớn và bạn sẽ thực hiện như sau:
SELECT Chuyenmuclon, SUM(Sobai) AS "Tong so bai"
FROM Quantrimang
GROUP BY Chuyenmuclon;
Result:
Chuyenmuclon Tong so bai
Laptrinh 324
Mang xa hoi 317
Trinh duyet web 94
Hàm SUM SQL Server với mệnh đề WHERE
Mệnh đề WHERE được dùng để lọc các bản ghi một bảng. Ví dụ này sẽ dùng mệnh đề WHERE cùng hàm SUM() để tính tổng lương của nhân viên làm việc nhiều hơn 9 tiếng một ngày.
SELECT SUM(salary) AS "Total Salary"
FROM employee_info
WHERE working_hours>9;
Khi chạy truy vấn này, nó trả về kết quả sau:
Hàm SUM SQL Server với ORDER BY
ORDER BY được dùng để sắp xếp dữ liệu trong bảng theo thứ tự tăng hoặc giảm dần. Ví dụ bên dưới sẽ dùng hàm SUM() với ORDER BY, tính tổng số lương của nhân viên dựa trên từng công việc, rồi phân loại kết quả theo thứ tự tăng dần:
SELECT occupation, SUM(salary) AS "Total Salary"
FROM employee_info
GROUP BY occupation
ORDER BY SUM(salary);
Kết quả:
Hàm SUM với OVER()
Mệnh đề OVER() xác định số hàng từ truy vấn được áp dụng cho hàm đó, theo thứ tự hàm đánh giá chúng và khi các phép tính của hàm được khởi động lại. Truy vấn bên dưới cung cấp tổng doanh số tích lũy cho từng công việc ở bảng employee_info:
SELECT DISTINCT occupation,
SUM(salary) OVER (PARTITION BY occupation) AS "Total Salary"
FROM employee_info;

Bạn nên đọc
