SQL Aggregate Functions
An aggregate function is a function that performs a calculation on a set of values, and returns a single value.
Aggregate functions are often used with the GROUP BY clause of the SELECT statement. The GROUP BY clause splits the result-set into groups of values and the aggregate function can be used to return a single value for each group.
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()).
SQL MIN() and MAX() Functions​
The MIN() function returns the smallest value of the selected column.
The MAX() function returns the largest value of the selected column.
MIN Example​
Find the lowest price in the Price column:
SELECT MIN(Price)
FROM Products;
MAX Example​
Find the highest price in the Price column:
SELECT MAX(Price)
FROM Products;
Syntax​
SELECT MIN(_column_name_) FROM _table_name_ WHERE _condition_;
SELECT MAX(_column_name_) FROM _table_name_ WHERE _condition_;
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 |
Set Column Name (Alias)​
When you use MIN() or MAX(), the returned column will not have a descriptive name. To give the column a descriptive name, use the AS keyword:
Example​
SELECT MIN(Price) AS SmallestPrice
FROM Products;
Use MIN() with GROUP BY​
Here we use the MIN() function and the GROUP BY clause, to return the smallest price for each category in the Products table:
Example​
SELECT MIN(Price) AS SmallestPrice, CategoryID
FROM Products
GROUP BY CategoryID;
You will learn more about the [GROUP BY](sql_groupby.asp) clause later in this tutorial.
======= description: "An aggregate function is a function that performs a calculation on a set of values, and returns a single value." tags: [sql, dbms, database]​
About SQL Aggregates​
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 include:
- MIN(): Returns the smallest value within a selected column.
- MAX(): Returns the largest value within a selected column.
- COUNT(): Returns the number of rows in a set.
- SUM(): Returns the total sum of a numerical column.
- AVG(): Returns the average value of a numerical column.
Aggregate functions ignore null values, except for COUNT().
Common SQL Aggregate Functions​
MIN()​
- Description: Returns the smallest value within the selected column.
- Syntax:
MIN(column_name) - Example:
SELECT MIN(salary) FROM employees;
MAX()​
- Description: Returns the largest value within the selected column.
- Syntax:
MAX(column_name) - Example:
SELECT MAX(salary) FROM employees;
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:
SELECT COUNT(*) FROM employees;
SUM()​
- Description: Returns the total sum of a numerical column.
- Syntax:
SUM(column_name) - Example:
SELECT SUM(salary) FROM employees;
AVG()​
- Description: Returns the average value of a numerical column.
- Syntax:
AVG(column_name) - Example:
SELECT AVG(salary) FROM employees;
Using Aggregate Functions with GROUP BY​
Aggregate functions can be 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:
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;