SQL SUM() Function (original) (raw)

Last Updated : 13 Jan, 2025

The SUM() function in SQL is one of the most commonly used **aggregate functions. It allows us to calculate the **total sum of a numeric column, making it essential for reporting and data analysis tasks. Whether we're working with **sales data, **financial figures, or any other **numeric information, the **SUM() function can help us quickly compute the sum of values based on specific conditions.

In this article, we will explain the **SUM() function in detail, provide multiple examples, and highlight its use in various SQL queries to enhance our understanding.

**What is the SQL SUM() Function?

The SUM() function in SQL is used to calculate the total of a **numeric column or expression. This aggregate function sums the values in the specified column and returns a single result. It is commonly used in combination with other SQL clauses like WHERE, **GROUP BY, and **HAVING to refine the data set and calculate sums based on **specific conditions.

**Syntax

SELECT SUM(column_name)
FROM table_name
WHERE condition;

**Key Terms

**Examples of SQL SUM() Function

In this section, we will demonstrate the usage of the **SUM() function with examples using a sample table called **Sales, which stores sales data such as the **Product, **Quantity, and **Price. This simple dataset will help us understand how the **SUM() function works in SQL to **calculate totals, sums of **distinct values, and more.

Sales-Table

Sales Table

**Example 1: Using SUM() with One Column

In this example, we will use the **SUM() function to calculate the total value of a specific column, such as total sales or total salary.

**Query:

SELECT SUM(Salary) AS TotalSalary
FROM Employees;

**Output

TotalSalary
450,000

**Explanation:

This query calculates the sum of the **Salary column in the **Employees table. This output shows the total salary paid to employees in the database.

**Example 2: Using SUM() with an Expression

We can also use the **SUM() function with an expression to calculate sums based on some **logic or mathematical operations.

**Query:

SELECT SUM(Price * Quantity) AS TotalRevenue
FROM Sales;

**Output

TotalRevenue
1,200,000

**Explanation:

This query multiplies **Price and **Quantity for each record in the **Sales table and then calculates the sum of those values. This is useful for calculating the total revenue generated from sales.

**Example 3: Using SUM() with GROUP BY

When we want to calculate the sum of values within groups, we can use the GROUP BY clause along with **SUM(). This is particularly useful for grouping data by categories such as **departments, **products, or **cities.

**Query:

SELECT Department, SUM(Salary) AS DepartmentSalary
FROM Employees
GROUP BY Department;

**Output

Department DepartmentSalary
HR 200,000
Sales 300,000
IT 250,000

**Explanation:

This query groups employees by their **Department and then calculates the total salary for each department.

**Example 4: Using SUM() with DISTINCT

If we want to sum only the **distinct values in a column, we can use the DISTINCT keyword with the **SUM() function.

**Query:

SELECT SUM(DISTINCT Price) AS TotalDistinctPrice
FROM Products;

**Output:

TotalDistinctPrice
500,000

**Explanation:

This query sums only the unique values in the **Price column of the **Products table. Duplicate values are excluded from the sum.

**Example 5: Using SUM() with HAVING

The HAVING clause can be used in combination with **GROUP BY to filter groups based on the result of the **SUM() function. This allows you to apply conditions to the grouped data after the aggregation.

**Query:

SELECT Department, SUM(Salary) AS DepartmentSalary
FROM Employees
GROUP BY Department
HAVING SUM(Salary) > 200,000;

**Output

Department DepartmentSalary
Sales 300,000
IT 250,000

**Explanation:

This query calculates the total salary per department and then filters the result to include only those departments where the total salary is greater than 200,000.

**Best Practices for Using the SQL SUM() Function

**Conclusion

The SQL **SUM() function is a powerful tool for aggregating numeric data. Whether we need to calculate the **total salary, **revenue, or count items, the **SUM() function simplifies these tasks and helps us derive valuable insights from our database. By using it with different clauses like **DISTINCT, **GROUP BY, and **HAVING, we can tailor our queries to specific conditions, making our analysis more efficient. The **SUM() function is especially useful for generating summary reports and analyzing **financial, **sales, or **inventory data.