SQL has built-in functions for counting database records.
The syntax for the built-in COUNT functions is:
SELECT COUNT(column) FROM table |
The COUNT(*) function returns the number of selected rows in a selection.
With this "Persons" Table:
| Name | Age |
|---|---|
| Hansen, Ola | 34 |
| Svendson, Tove | 45 |
| Pettersen, Kari | 19 |
This example returns the number of rows in the table:
SELECT COUNT(*) FROM Persons |
Result:
3 |
This example returns the number of persons that are older than 20 years:
SELECT COUNT(*) FROM Persons WHERE Age>20 |
Result:
2 |
The COUNT(column) function returns the number of rows without a NULL value in the specified column.
With this "Persons" Table:
| Name | Age |
|---|---|
| Hansen, Ola | 34 |
| Svendson, Tove | 45 |
| Pettersen, Kari |
This example finds the number of persons with a value in the "Age" field in the "Persons" table:
SELECT COUNT(Age) FROM Persons |
Result:
2 |
The COUNT(column) function is handy for finding columns without a value. Note that the result is one less than the number of rows in the original table because one of the persons does not have an age value stored.
The keyword DISTINCT and COUNT can be used together to count the number of distinct results.
The syntax is:
SELECT COUNT(DISTINCT column) FROM table |
With this "Orders" Table:
| Company | OrderNumber |
|---|---|
| Sega | 3412 |
| W3Schools | 2312 |
| Trio | 4678 |
| W3Schools | 6798 |
This SQL statement:
SELECT COUNT(Company) FROM Orders |
Will return this result:
4 |
This SQL statement:
SELECT COUNT(DISTINCT Company) FROM Orders |
Will return this result:
3 |