MySQL AVG() Function
MySQL AVG() Function
The AVG() function returns the average value of a numeric column.
The AVG() function ignores NULL values in the column.
AVG() Syntax
SELECT AVG(column_name)
FROM table_name
WHERE condition;Demo Database
Below is a selection from the "Products" table in the Northwind sample database:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
AVG() Example
The following SQL finds the average price of all products:
Note: NULL values are ignored.
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;
Try it Yourself »
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);
Try it Yourself »