MySQL | COUNT method
Start your free 7-days trial now!
MySQL's COUNT(~)
aggregate method counts the number of returned results.
Parameters
1. expr
| expression
The expression to count the number of retrieved rows for.
Return value
The number of rows in expr
that do not contain NULL
values.
The exception is for COUNT(*)
which counts retrieved rows including those containing NULL
values.
Examples
Consider the following table about students' extracurricular activities:
student_id | club | date_entered |
---|---|---|
1 | Football | 2016-02-13 |
2 | Boxing | 2016-05-25 |
3 | Apple | 2018-08-17 |
4 | Fishing | 2017-01-01 |
5 | NULL | NULL |
The above sample table can be created using the code here.
Basic usage
To count the number of clubs in extracurricular
table:
SELECT COUNT(club) FROM extracurricular;
+-------------+| COUNT(club) |+-------------+| 4 |+-------------+
Note that the NULL
value for student_id=5
is ignored, which is why we have a return value of 4
.
COUNT(*)
To return the number of records in the extracurricular
table:
SELECT COUNT(*) FROM extracurricular;
+----------+| COUNT(*) |+----------+| 5 |+----------+
Note that COUNT(*)
returns a count of the number of rows retrieved, whether or not they contain NULL
values.
Distinct records
To count the number of distinct clubs in extracurricular
table:
SELECT COUNT(DISTINCT club) FROM extracurricular;
+----------------------+| COUNT(DISTINCT club) |+----------------------+| 4 |+----------------------+
Missing values
To count missing values, use the IS NULL
operator like so:
SELECT COUNT(*) FROM extracurricular WHERE club IS NULL;
+----------+| COUNT(*) |+----------+| 1 |+----------+
We can see that there is one row in table extracurricular
with a NULL
club value.
Note that the following SQL does not work:
SELECT COUNT(*) FROM extracurricular WHERE club = NULL;