The SQL COUNT function returns the number of rows in a query. NULL value will not be counted.
SQL COUNT Syntax
SELECT COUNT(expression) AS resultName FROM tableName WHERE conditions
The expression can be *, column name or DISTINCT column name. All these 3 expressions work with MS SQL Server, Oracle and mySQL.
SQL COUNT Examples
Table: Employees
EmployeeId | FirstName | LastName | Department | Salary |
---|---|---|---|---|
203 | Mary | Fox | Finance | 78000 |
204 | Joe | Lanyon | Finance | 45800 |
205 | Sally | Daff | Finance | 57000 |
206 | Grace | Salter | 62000 | |
302 | James | Band | 75000 | |
303 | Dona | Earl | Development | 55000 |
304 | Tony | Oakes | Development | 49000 |
Simple Example
We want to know how many employees in the table:
SELECT COUNT(*) AS NumEmployee FROM Employees
The result will be 7:
NumEmployee |
---|
7 |
Example of NULL Column
If we use the following statement:
SELECT COUNT(Department) AS NumDepartment FROM Employees
The result will be 5, because 2 rows in Employees table have NULL value of column Department:
NumDepartment |
---|
5 |
Example of SELECT COUNT(DISTINCT Column Name)
If we want to select the number of unique departments:
SELECT COUNT(DISTINCT Department) AS NumDepartment FROM Employees
The result will look like:
NumDepartment |
---|
2 |
Example of using WHERE Clause
Select how many employees have salary over $50,000:
SELECT COUNT(EmployeeId) AS NumEmployee FROM Employees WHERE Salary > 50000
The result will look like:
NumEmployee |
---|
5 |
Example of using GROUP BY
Sometime, we may want to know how many employees in each department:
SELECT Department, COUNT(EmployeeId) AS NumEmployee FROM Employees GROUP BY Department
The result will look like:
Department | NumEmployee |
---|---|
Finance | 3 |
Development | 2 |
NULL | 2 |