Функция COUNT
Функция COUNT подсчитывает количество
записей в таблице. Условие, по которому будут
выбираться записи, задается с помощью команды
WHERE.
Команда WHERE не является обязательной, если
ее не указать - будут подсчитаны все записи
в таблице.
Синтаксис
Подсчет всех записей:
SELECT COUNT(*) FROM table_name WHERE condition
Подсчет всех записей, где заданное поле не равно NULL:
SELECT COUNT(field) FROM table_name WHERE condition
Только уникальные значения поля:
SELECT COUNT(DISTINCT field) FROM table_name WHERE condition
Таблицы для примеров
| id | name | age | salary |
|---|---|---|---|
| 1 | user1 | 23 | 400 |
| 2 | user2 | 25 | 500 |
| 3 | user3 | 23 | 500 |
| 4 | user4 | 30 | 900 |
| 5 | user5 | 27 | 500 |
| 6 | user6 | 28 | 900 |
Пример
Давайте подсчитаем в таблице всех работников
с возрастом 23 года:
SELECT COUNT(*) AS count FROM employees WHERE age = 23
Результат выполнения SQL запроса:
| count |
|---|
| 2 |
Пример
Давайте подсчитаем в таблице количество разных
зарплат (их будет 3 штуки: 400,
500 и 900):
SELECT COUNT(DISTINCT salary) AS count FROM employees
Результат выполнения SQL запроса:
| count |
|---|
| 3 |
Пример
Давайте подсчитаем в таблице одновременно количество разных возрастов и количество разных зарплат:
SELECT
COUNT(DISTINCT age) AS count1,
COUNT(DISTINCT salary) AS count2
FROM employees
Результат выполнения SQL запроса:
| count1 | count2 |
|---|---|
| 5 | 3 |
Меняем таблицу для примеров
| id | name | age | salary |
|---|---|---|---|
| 1 | user1 | 23 | NULL |
| 2 | user2 | 25 | 500 |
| 3 | user3 | 23 | NULL |
Пример
Давайте подсчитаем количество всех записей:
SELECT COUNT(*) AS count FROM employees
Результат выполнения SQL запроса:
| count |
|---|
| 3 |
А теперь подсчитаем количество зарплат, не равных NULL:
SELECT COUNT(salary) AS count FROM employees
Результат выполнения SQL запроса:
| count |
|---|
| 1 |