Skip to main content

SQL AVG() Function

The AVG() function returns the average value of a numeric column.

Example​

Find the average price of all products:

SELECT AVG(Price)  
FROM Products;

Syntax​

SELECT AVG(_column_name_) FROM _table_name_ WHERE _condition_;

Demo Database​

Below is a selection from the Products table used in the examples:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18
2Chang1124 - 12 oz bottles19
3Aniseed Syrup1212 - 550 ml bottles10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22
5Chef Anton's Gumbo Mix2236 boxes21.35

Add a WHERE Clause​

You can add a WHERE clause to specify conditions:

Example​

Return the average price of products in category 1:

SELECT AVG(Price)  
FROM Products
WHERE CategoryID = 1;

Use an Alias​

Give the AVG column a name by using the AS keyword.

Example​

Name the column "average price":

SELECT AVG(Price) AS \[average price\]  
FROM Products;

Higher Than Average​

To list all records with a higher price than average, we can use the AVG() function in a sub query:

Example​

Return all products with a higher price than the average price:

SELECT \* FROM Products  
WHERE price > (SELECT AVG(price) FROM Products);

Use AVG() with GROUP BY​

Here we use the AVG() function and the GROUP BY clause, to return the average price for each category in the Products table:

Example​

SELECT AVG(Price) AS AveragePrice, CategoryID  
FROM Products
GROUP BY CategoryID;