SQL COUNT() Function
The COUNT() function returns the number of rows that matches a specified criterion.
Exampleโ
Find the total number of rows in the Products table:
SELECT COUNT(\*)
FROM Products;
Video Explanationโ

Syntaxโ
SELECT COUNT(_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 |
Specify Columnโ
You can specify a column name instead of the asterix symbol (*).
If you specify a column name instead of (*), NULL values will not be counted.
Exampleโ
Find the number of products where the ProductName is not null:
SELECT COUNT(ProductName)
FROM Products;
Add a WHERE Clauseโ
You can add a WHERE clause to specify conditions:
Exampleโ
Find the number of products where Price is higher than 20:
SELECT COUNT(ProductID)
FROM Products
WHERE Price > 20;
Ignore Duplicatesโ
You can ignore duplicates by using the DISTINCT keyword in the COUNT() function.
If DISTINCT is specified, rows with the same value for the specified column will be counted as one.
Exampleโ
How many different prices are there in the Products table:
SELECT COUNT(DISTINCT Price)
FROM Products;
Use an Aliasโ
Give the counted column a name by using the AS keyword.
Exampleโ
Name the column "Number of records":
SELECT COUNT(\*) AS \[Number of records\]
FROM Products;
Use COUNT() with GROUP Bโ
Here we use the COUNT() function and the GROUP BY clause, to return the number of records for each category in the Products table:
Exampleโ
SELECT COUNT(\*) AS \[Number of records\], CategoryID
FROM Products
GROUP BY CategoryID;
Completed working through this block? Sync progress to workspace.