Chuyển đến nội dung chính

Giải thích hàm SQL SUM()

Khám phá sức mạnh của hàm SQL SUM() cho tổng hợp dữ liệu. Tìm hiểu cách triển khai rolling sum, cumulative sum và cộng nhiều cột một cách hiệu quả.
· 8 phút đọc

Khám phá cùng AI

Hàm SUM() trong SQL là một hàm tổng hợp hữu ích để tính tổng các cột số. Hàm SUM() quan trọng trong phân tích dữ liệu vì nó tóm tắt các chỉ số then chốt của những cột số cụ thể. Nhờ cách dùng đơn giản, hàm SUM() giúp nhà phân tích dữ liệu rút ra insight có ý nghĩa từ các tập dữ liệu lớn. Ngoài ra, hàm linh hoạt này được hỗ trợ trên nhiều hệ quản trị cơ sở dữ liệu khác nhau, bao gồm SQL Server, PostgreSQL, MySQL và Oracle.

Nếu bạn là một nhà phân tích dữ liệu mới vào nghề hoặc dày dạn kinh nghiệm và sẵn sàng nâng cao kỹ năng, tôi rất khuyến nghị các khóa Introduction to SQL và Intermediate SQL của DataCamp để cải thiện kỹ năng phân tích dữ liệu. SQL Basics Cheat Sheet cũng sẽ là tài liệu tham khảo hữu ích trong hành trình của bạn.

Cách sử dụng hàm SUM() trong SQL

Hàm SUM() trong SQL được dùng để tổng hợp tổng của một cột cụ thể trong tập dữ liệu. Hãy xét bảng orders có cấu trúc sau.

Bảng ví dụ để tổng hợp tổng cột bằng hàm SUM().

Bảng ví dụ để tổng hợp tổng cột bằng hàm SUM(). Ảnh: Tác giả.

Truy vấn dưới đây sẽ trả về tổng số lượng từ cột quantity, đặt bí danh là total_quantity, và doanh thu được tính từ tổng tích của quantity và price, đặt bí danh là total_revenue.

Lưu ý rằng đối với total_revenue, hàm SUM() được dùng cùng một biểu thức để thực hiện phép tính bổ sung trên cột trước khi lấy tổng. Cũng lưu ý rằng hàm SUM() bỏ qua các giá trị NULL khi tính tổng.

-- Select the total quantity and the total revenue-- Calculate the total quantity of all orders and alias 'total_quantity'.-- Calculate the total revenue and assigns it an alias 'total_revenue'.SELECT     SUM(quantity) AS total_quantity,    SUM(quantity * price) AS total_revenueFROM     orders;

Bảng kết quả ví dụ của hàm SUM() khi dùng bí danh và biểu thức. Ảnh: Tác giả.

Các trường hợp sử dụng hàm SUM() trong SQL

Hàm SUM() trong SQL cũng có thể dùng để thực hiện các phép tính nâng cao. Hãy xem một số ví dụ.

Tính cumulative sum trong SQL

Cumulative sum (tổng luỹ kế) là tổng chạy của một cột số. Việc tính tổng luỹ kế rất quan trọng vì giúp theo dõi tổng qua các giai đoạn khác nhau cho những chỉ số như doanh thu hoặc doanh số. Truy vấn dưới đây cho thấy cách dùng hàm SUM() để tính tổng luỹ kế của cột quantity.

-- Calculate cumulative sums of the 'quantity' column for each order_dateSELECT     order_date,     quantity,    -- Calculate the cumulative sum of 'quantity' ordered by 'order_date'    SUM(quantity) OVER (ORDER BY order_date) AS cumulative_quantityFROM     orders;

Bảng kết quả ví dụ sử dụng hàm SQL SUM() để tính tổng luỹ kế.

Bảng kết quả ví dụ sử dụng hàm SQL SUM() để tính tổng luỹ kế. Ảnh: Tác giả.

Tôi khuyến nghị khóa Data Manipulation in SQL của DataCamp, khóa này trình bày chi tiết việc dùng window function trong tổng hợp cho các kỹ thuật như tính tổng chạy. SQL Window Functions Cheat Sheet cũng là hướng dẫn phù hợp để nhanh chóng tham khảo các window function khác nhau và cách áp dụng chúng.

Cộng nhiều cột trong SQL

Hàm SUM() cũng có thể dùng để tính tổng của nhiều cột. Cách tiếp cận này tổng hợp dữ liệu từ nhiều cột thành một. Hãy xét bảng orders mới bên dưới, với các cột opening_quantity và received_quantity.

Bảng ví dụ để cộng nhiều cột bằng hàm SQL SUM().

Bảng ví dụ để cộng nhiều cột bằng hàm SQL SUM(). Ảnh: Tác giả.

Ví dụ dưới đây cho thấy cách dùng hàm SUM() để tính tổng gộp của các cột opening_quantity và received_quantity. Ở đây, toán tử + được dùng để thực hiện phép cộng giữa hai giá trị số.

-- Calculate the total quantity of opening_quantity and received_quantity columns-- Sum the total values in one columnSELECT     SUM(opening_quantity + received_quantity) AS total_quantityFROM     orders;

Bảng kết quả ví dụ dùng hàm SQL SUM() để cộng nhiều cột.Bảng kết quả ví dụ dùng hàm SQL SUM() để cộng nhiều cột. Ảnh: Tác giả.

 

Tính rolling sum trong SQL

Rolling sum cho phép tính tổng dựa trên một số hàng trước đó được chỉ định. Hàm SUM() trong SQL tính rolling sum cho các chỉ số quan trọng như tổng doanh số 7 ngày. Truy vấn dưới đây minh họa cách dùng hàm SUM() để tính rolling sum của quantity trên 3 hàng gần nhất theo thứ tự order_date.

-- Calculate rolling sums of the 'quantity' column for the past 3 orders for each order_dateSELECT     order_date,     quantity,    -- Calculate the rolling sum of 'quantity' over the last 3 rows ordered by 'order_date'    SUM(quantity) OVER (        ORDER BY order_date         ROWS BETWEEN 2 PRECEDING AND CURRENT ROW    ) AS rolling_quantityFROM     orders;

Bảng kết quả ví dụ khi tính rolling sum trong SQL bằng hàm SUM().

Bảng kết quả ví dụ khi tính rolling sum trong SQL bằng hàm SUM(). Ảnh: Tác giả.

Cộng các giá trị DISTINCT trong SQL

Bạn có thể cộng các giá trị của một cột cụ thể bằng từ khóa DISTINCT để chỉ tính tổng các giá trị duy nhất. Ví dụ dưới đây cho thấy cách dùng từ khóa DISTINCT để cộng các giá trị duy nhất ở các cột quantity và price.

-- Sum the distinct values of the quantity and price columnsSELECT     SUM(DISTINCT quantity) AS total_distinct_quantity,	SUM(DISTINCT price) AS total_distinct_priceFROM     orders;

SUM và các hàm tổng hợp SQL khác

Như chúng ta đã thấy, hàm SUM() trong SQL là một công cụ mạnh mẽ và linh hoạt hơn vẻ bề ngoài. Dẫu vậy, nó chỉ là một trong số nhiều hàm tổng hợp trong SQL. Dưới đây là bảng tóm tắt những hàm tổng hợp SQL phổ biến nhất, mô tả và ví dụ:

FunctionDescriptionExample
SUM()Tính tổng của một cột số.Tổng số lượng và doanh thu.
AVG()Tính giá trị trung bình của một cột số.Giá trung bình của sản phẩm.
MIN()Trả về giá trị nhỏ nhất trong một cột.Số lượng tối thiểu của đơn hàng.
MAX()Trả về giá trị lớn nhất trong một cột.Giá tối đa của sản phẩm.
COUNT()Trả về số hàng thỏa mãn một điều kiện xác định.Tổng số đơn hàng.

Kết luận

Việc học hàm SUM() trong SQL rất quan trọng để hiểu các cách ứng dụng khác nhau trong phân tích dữ liệu. Hàm SUM() được hỗ trợ trên hầu hết các hệ quản trị cơ sở dữ liệu lớn và có cách triển khai tương tự với các mệnh đề và window function khác nhau. Tôi khuyến khích bạn luyện tập áp dụng hàm SUM() với các tập dữ liệu khác nhau để trau dồi kỹ năng SQL.

Nếu bạn muốn nâng cao kỹ năng SQL phục vụ phân tích kinh doanh, hãy tham khảo lộ trình kỹ năng SQL Fundamentals của DataCamp để nắm bắt các kỹ năng theo nhu cầu. Tương tự, bạn có thể xem lộ trình nghề nghiệp Associate Data Analyst in SQL để học và làm chủ các kỹ năng SQL cần thiết nhằm thăng tiến sự nghiệp. Cuối cùng, tôi rất khuyến nghị lấy SQL Associate Certification của DataCamp để chứng minh năng lực SQL và giúp bạn nổi bật giữa các nhà phân tích dữ liệu khác.

Allan Ouko

Tác giả

Allan Ouko

Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.

Frequently Asked Questions

Hàm SQL SUM() là gì?

Hàm SUM() tính tổng các giá trị của một cột số trên toàn bộ bảng/tập dữ liệu.

Sự khác biệt giữa hàm SUM() và COUNT() là gì?

Hàm SUM() tính tổng các giá trị trong một cột. Hàm COUNT() trả về tổng số hàng dựa trên một điều kiện.

Hàm SUM() xử lý giá trị NULL như thế nào?

Khi tính tổng, hàm SUM() bỏ qua các giá trị NULL trong một cột.

Có thể dùng từ khóa DISTINCT với hàm SUM() không?

Từ khóa DISTINCT được dùng cùng hàm SUM() để tính tổng các giá trị duy nhất trong một cột.

Bạn có thể dùng hàm SUM() với window function như thế nào?

Hàm SUM() có thể dùng như một window function với mệnh đề OVER để tính tổng luỹ kế và các phép tính khác trên từng phân vùng dữ liệu.

Những hàm nào trong SQL tương tự với SUM()?

Các hàm tổng hợp tương tự trong SQL bao gồm AVG() để tính trung bình, COUNT() để đếm số hàng, MIN() cho giá trị nhỏ nhất, MAX() cho giá trị lớn nhất, COUNT(DISTINCT) để đếm số giá trị duy nhất, GROUP_CONCAT() để nối chuỗi, và STDDEV() hoặc VARIANCE() cho các phép tính thống kê. Những hàm này giúp tóm tắt và phân tích dữ liệu hiệu quả.

Chủ đề

Liên quan