MySQL функция COUNT

В этом учебном пособии вы узнаете, как использовать MySQL функцию COUNT с синтаксисом и примерами.

Описание

MySQL функция COUNT возвращает количество выражений.

Синтаксис

Синтаксис MySQL функции COUNT:

SELECT COUNT(aggregate_expression)
FROM tables
[WHERE conditions];

ИЛИ синтаксис для функции COUNT при группировке результатов по одному или нескольким столбцам:

SELECT expression1, expression2, ... expression_n,
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:

Этот пример COUNT вернет 3 строки, поскольку все значения supplier_id в наборе результатов запроса NOT NULL.

Однако если вы запустили следующий оператор SELECT, который использует функцию COUNT:

Этот пример 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 долларов в год:

В этом примере функции COUNT, выражению COUNT (*) присвоили алиас "Количество сотрудников". В результирующем наборе в качестве имени поля будет отображаться "Количество сотрудников".

Пример с использованием DISTINCT

Вы можете использовать предложение DISTINCT в функции COUNT. Например, приведенный ниже SQL запрос возвращает количество уникальных отделов, в которых хотя бы один сотрудник зарабатывает более 35 000 долларов в год.

Пример с использованием GROUP BY

В некоторых случаях вам потребуется использовать предложение GROUP BY с функцией COUNT.

Например, вы можете использовать функцию COUNT, чтобы вернуть department (отдел) и number of employees (количество сотрудников в связанном отделе), которые находятся в state (штате) «NY».

Поскольку вы указали один столбец в своем операторе SELECT, который не инкапсулирован в функцию COUNT, вы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в разделе GROUP BY.