017 SQL COUNT
The webpage explains the SQL COUNT() function. Here’s a summary of the key points:
- Purpose: The
COUNT()function returns the number of rows matching a specified condition in a table. - Basic Usage:
This gives the total number of rows in a table.SELECT COUNT(*) FROM table_name; - Specify Column:
Using a column name (e.g.,COUNT(column_name)) will count only the non-NULL values in that column. - Add Conditions:
You can add aWHEREclause to count rows matching certain criteria, e.g.,SELECT COUNT(ProductID) FROM Products WHERE Price > 20; - Ignore Duplicates:
To count only unique values, useCOUNT(DISTINCT column_name). - Aliases:
You can rename the result usingAS, e.g.,SELECT COUNT(*) AS [Number of records] FROM Products; - Grouping:
Combine withGROUP BYto get row counts per group, e.g., count products in each category.
Interactive SQL examples and a short quiz are provided for hands-on learning on the page.[1]
SQL COUNT() Function
The SQL COUNT() Function
The COUNT() function returns the number of rows that matches a specified criterion.
Find the total number of rows in the Products table:
SELECT COUNT(*)
FROM Products;
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.
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:
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.
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.
Name the column "Number of records":
SELECT COUNT(*) AS [Number of records]
FROM Products;
Use COUNT() with GROUP BY
Here we use the COUNT() function and the GROUP BY clause, to return the number of records for each category in the Products table:
SELECT COUNT(*) AS [Number of records], CategoryID
FROM Products
GROUP BY CategoryID;
You will learn more about the [GROUP BY](https://www.w3schools.com/sql/sql_groupby.asp) clause later in this tutorial.