В этом учебном пособии вы узнаете, как использовать MySQL функцию COUNT с синтаксисом и примерами.
Описание
MySQL функция COUNT возвращает количество выражений.
Синтаксис
Синтаксис MySQL функции COUNT:
FROM tables
[WHERE conditions];
ИЛИ синтаксис для функции COUNT при группировке результатов по одному или нескольким столбцам:
COUNT(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
Параметры или аргументы
expression1, expression2, ... expression_n - выражения, которые не инкапсулированы в функции COUNT и должны быть включены в предложение GROUP BY в конце SQL запроса.
aggregate_expression - это столбец или выражение, чьи ненулевые значения будут подсчитаны.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, указанная в предложении FROM.
WHERE conditions - необязательный. Это условия, которые должны быть выполнены для выбранных записей.
Включает только значения NOT NULL
Не все это понимают, но функция COUNT будет включать только те записи, где значение выражения COUNT ( expression ) не равно NULL. Когда выражение содержит значение NULL, оно не включается в вычисления COUNT.
Рассмотрим пример функции COUNT, демонстрирующий, как значения NULL оцениваются функцией COUNT.
Например, если у вас есть следующая таблица под названием suppliers:
supplier_id | supplier_name | state |
---|---|---|
1 | Apple | NY |
2 | Meat | |
3 | Cheese |
И если вы запустите следующий оператор SELECT, который использует функцию COUNT:
1 2 |
SELECT COUNT(supplier_id) FROM suppliers; |
Этот пример COUNT вернет 3 строки, поскольку все значения supplier_id в наборе результатов запроса NOT NULL.
Однако если вы запустили следующий оператор SELECT, который использует функцию COUNT:
1 2 |
SELECT COUNT(state) FROM suppliers; |
Этот пример COUNT будет возвращать только 1 строку, поскольку только одно значение state в результирующем наборе запроса NOT NULL. Это будет первая строка, где state = 'NY'. Это единственная строка, которая включена в расчет функции COUNT.
Применение
Функция COUNT может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Пример с одним выражением
Рассмотрим примеры MySQL функции COUNT, чтобы понять, как использовать функцию COUNT в MySQL.
Например вы можете узнать, сколько сотрудников имеют salary (зарплату) выше 25 000 долларов в год:
1 2 3 |
SELECT COUNT(*) AS "Количество сотрудников" FROM employees WHERE salary > 25000; |
В этом примере функции COUNT, выражению COUNT (*) присвоили алиас "Количество сотрудников". В результирующем наборе в качестве имени поля будет отображаться "Количество сотрудников".
Пример с использованием DISTINCT
Вы можете использовать предложение DISTINCT в функции COUNT. Например, приведенный ниже SQL запрос возвращает количество уникальных отделов, в которых хотя бы один сотрудник зарабатывает более 35 000 долларов в год.
1 2 3 |
SELECT COUNT(DISTINCT department) AS "Unique departments" FROM employees WHERE salary > 35000; |
Пример с использованием GROUP BY
В некоторых случаях вам потребуется использовать предложение GROUP BY с функцией COUNT.
Например, вы можете использовать функцию COUNT, чтобы вернуть department (отдел) и number of employees (количество сотрудников в связанном отделе), которые находятся в state (штате) «NY».
1 2 3 4 |
SELECT department, COUNT(*) AS "Number of employees" FROM employees WHERE state = 'CA' GROUP BY department; |
Поскольку вы указали один столбец в своем операторе SELECT, который не инкапсулирован в функцию COUNT, вы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в разделе GROUP BY.