SQL Aggregate Functions
An aggregate function is a function that performs a calculation on a set of values, and returns a single value. These functions are commonly used with the GROUP BY clause in SQL to group rows that share a common attribute.
The most commonly used SQL aggregate functions are:
MIN()- returns the smallest value within the selected columnMAX()- returns the largest value within the selected columnCOUNT()- returns the number of rows in a setSUM()- returns the total sum of a numerical columnAVG()- returns the average value of a numerical column
Aggregate functions ignore null values (except for COUNT()).
Demo Databaseâ
Below is a selection from the Products table used in the examples:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
Common SQL Aggregate Functionsâ
MIN() and MAX()â
- Description: The
MIN()function returns the smallest value of the selected column. TheMAX()function returns the largest value of the selected column. - Syntax:
SELECT MIN(column_name) FROM table_name WHERE condition;
SELECT MAX(column_name) FROM table_name WHERE condition; - Example (MIN): Find the lowest price in the Price column:
SELECT MIN(Price) FROM Products; - Example (MAX): Find the highest price in the Price column:
SELECT MAX(Price) FROM Products;
COUNT()â
- Description: Returns the number of rows in a set.
- Syntax:
COUNT(column_name)â Counts non-null values in the specified columnCOUNT(*)â Counts all rows
- Example: Count the total number of products:
SELECT COUNT(*) FROM Products;
SUM()â
- Description: Returns the total sum of a numerical column.
- Syntax:
SUM(column_name) - Example: Find the sum of all prices in the Products table:
SELECT SUM(Price) FROM Products;
AVG()â
- Description: Returns the average value of a numerical column.
- Syntax:
AVG(column_name) - Example: Find the average price of all products:
SELECT AVG(Price) FROM Products;
Set Column Name (Alias)â
When you use aggregate functions, the returned column will not have a descriptive name. To give the column a descriptive name, use the AS keyword (alias):
Exampleâ
SELECT MIN(Price) AS SmallestPrice FROM Products;
Using Aggregate Functions with GROUP BYâ
Aggregate functions are often combined with the GROUP BY clause to group rows that have the same values in specified columns.
Syntaxâ
SELECT column1, AGGREGATE_FUNCTION(column2)
FROM table_name
GROUP BY column1;
Exampleâ
Here we use the MIN() function and the GROUP BY clause to return the smallest price for each category in the Products table:
SELECT MIN(Price) AS SmallestPrice, CategoryID
FROM Products
GROUP BY CategoryID;
Completed working through this block? Sync progress to workspace.