018 SQL SUM
The current W3Schools page explains the SQL SUM() function, which is used to return the total sum of a numeric column in a database table.
Key points:
- Basic Usage:
SUM()calculates the sum for a specified column, e.g.,SELECT SUM(Quantity) FROM OrderDetails; - With WHERE clause: You can sum values conditionally, e.g., only for products with
ProductID = 11. - Using an Alias: Name the result column using
AS, e.g.,SELECT SUM(Quantity) AS total FROM OrderDetails; - Grouping: Combine
SUM()withGROUP BYto get totals per group (e.g., perOrderID). - Expressions: You can sum calculated values, e.g.,
SUM(Quantity * 10)to find total earnings if each product costs 10 dollars. - Joins: You can sum values after joining tables, e.g., to calculate total earnings using product prices from a different table.
- The page provides examples and interactive SQL editors you can try yourself.
In summary, SQL SUM() is a powerful aggregate function for calculating column totals—with support for filtering, grouping, expressions, and joins.[1]
SQL SUM() Function
The SQL SUM() Function
The SUM() function returns the total sum of a numeric column.
Return the sum of all Quantity fields in the OrderDetails table:
SELECT SUM(Quantity)
FROM OrderDetails;
Syntax
SELECT SUM(_column_name_)
FROM _table_name_
WHERE _condition_;
Demo Database
Below is a selection from the OrderDetails table used in the examples:
| OrderDetailID | OrderID | ProductID | Quantity |
|---|---|---|---|
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
Add a WHERE Clause
You can add a WHERE clause to specify conditions:
Return the sum of the Quantity field for the product with ProductID 11:
SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProductId = 11;
Use an Alias
Give the summarized column a name by using the AS keyword.
Name the column "total":
SELECT SUM(Quantity) AS total
FROM OrderDetails;
Use SUM() with GROUP BY
Here we use the SUM() function and the GROUP BY clause, to return the Quantity for each OrderID in the OrderDetails table:
SELECT OrderID, SUM(Quantity) AS [Total Quantity]
FROM OrderDetails
GROUP BY OrderID;
You will learn more about the [GROUP BY](https://www.w3schools.com/sql/sql_groupby.asp) clause later in this tutorial.
SUM() With an Expression
The parameter inside the SUM() function can also be an expression.
If we assume that each product in the OrderDetails column costs 10 dollars, we can find the total earnings in dollars by multiply each quantity with 10:
Use an expression inside the SUM() function:
SELECT SUM(Quantity * 10)
FROM OrderDetails;
We can also join the OrderDetails table to the Products table to find the actual amount, instead of assuming it is 10 dollars:
Join OrderDetails with Products, and use SUM() to find the total amount:
SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;
You will learn more about Joins later in this tutorial.