
Working with databases often involves performing calculations on numerical data. One of the most useful aggregate functions in SQL for this purpose is SUM(). It allows us to get the total sum of a column’s values, providing insightful summaries of data sets.
Understanding the SUM() Function
The SUM() function in SQL calculates the total of a specified column in a table. It is commonly used in financial transactions, sales reports, and statistical calculations to aggregate numerical data.
Its basic syntax looks like this:
SELECT SUM(column_name)
FROM table_name
WHERE condition;
Each part of this query plays a crucial role:
SUM(column_name): Computes the total of the specified column.FROM table_name: Indicates which table contains the data.WHERE condition: (Optional) Filters rows before computation.
Basic Example of SUM() in SQL
Let’s consider a simple table named sales that records sales transactions.
| id | product_name | quantity | price |
|---|---|---|---|
| 1 | Phone | 2 | 500 |
| 2 | Laptop | 1 | 1200 |
| 3 | Tablet | 3 | 300 |
If I want to calculate the total revenue generated, I can use the SUM() function like this:
SELECT SUM(quantity * price) AS total_revenue
FROM sales;
This query multiplies the quantity by the price for each row and then sums up the results. The output will be:
| total_revenue |
|---|
| 2900 |
Using SUM() with GROUP BY
The GROUP BY clause is often combined with the SUM() function to calculate totals per category.
If I want to view total sales revenue per product, I can use:
SELECT product_name, SUM(quantity * price) AS total_revenue
FROM sales
GROUP BY product_name;
The result will be:
| product_name | total_revenue |
|---|---|
| Phone | 1000 |
| Laptop | 1200 |
| Tablet | 900 |
Filtering Data Using SUM() and HAVING
When working with grouped data, the HAVING clause filters results after aggregation. Suppose I only want products generating revenue above 1000:
SELECT product_name, SUM(quantity * price) AS total_revenue
FROM sales
GROUP BY product_name
HAVING total_revenue > 1000;
The result will be:
| product_name | total_revenue |
|---|---|
| Phone | 1000 |
| Laptop | 1200 |
Using SUM() with NULL Values
A common concern when using SUM() is dealing with NULL values. Fortunately, SUM() automatically ignores NULL values during calculations.
Consider a transactions table where some amounts are missing:
| id | amount |
|---|---|
| 1 | 200 |
| 2 | NULL |
| 3 | 500 |
If I run:
SELECT SUM(amount) AS total_amount
FROM transactions;
The result will be:
| total_amount |
|---|
| 700 |
Key Takeaways
Here’s a summary of what I’ve covered about the SUM() function:
- It calculates the total sum of a specified column.
- It can be combined with
GROUP BYto compute totals per category. HAVINGhelps filter results after aggregation.- It automatically ignores
NULLvalues.
Understanding SUM() helps in making smart data analyses, whether for financial reports, sales trends, or any numerical dataset.
Other interesting article:
How COUNT works in SQL? Best COUNT examples