Функция COUNT
Функция COUNT подсчитывает количество записей в таблице. Условие, по которому будут выбираться записи, задается с помощью команды WHERE . Команда WHERE не является обязательной, если ее не указать — будут подсчитаны все записи в таблице.
Синтаксис
Подсчет всех записей:
SELECT COUNT(*) FROM имя_таблицы WHERE условие
Подсчет всех записей, где заданное поле не равно NULL:
SELECT COUNT(поле) FROM имя_таблицы WHERE условие
Только уникальные значения поля:
SELECT COUNT(DISTINCT поле) FROM имя_таблицы WHERE условие
Таблицы для примеров
| 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 и 1000):
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 |
Смотрите также
- команду DISTINCT ,
которая позволяет подсчитывать только уникальные значения поля - команду GROUP BY,
которая позволяет группировать записи
Функция SQL COUNT()
Оператор SQL COUNT() — функция возвращающая количество записей (строк) таблицы. Запись функции с указанием столбца (синтаксис ниже) вернет количество записей конкретного столбца за исключением NULL записей.
Функция SQL COUNT() имеет следующий синтаксис:
COUNT(column_name)
Запись функции с указанием маски «*» вернет количество всех записей в таблице.
COUNT(*)
Примеры оператора SQL COUNT: Имеется следующая таблица Universities :
| ID | UniversityName | Students | Faculties | Professores | Location | Site |
| 1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
| 2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
| 3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
| 4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
| 5 | Higher School of Economics | 20335 | 12 | 1615 | Moscow | hse.ru |
| 6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
| 7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 1. Вывести число записей таблицы, используя оператор SQL COUNT:
SELECT COUNT(*)
FROM Universities
Пример 2. Найти количество университетов расположенных в Москве, используя оператор SQL COUNT:
SELECT COUNT(*) FROM Universities WHERE Location = 'Moscow'
Пример 3. Найти количество университетов с больше чем 20 факультетами, используя оператор SQL COUNT:
SELECT COUNT(*) FROM Universities WHERE Faculties > 20
Функция Count (Microsoft Access SQL)
Заполнитель expr представляет строковое выражение, идентифицирующее поле, содержащее данные, которые требуется подсчитать, или выражение, которое выполняет вычисление с использованием данных в поле. Операнды в expr могут включать имя поля таблицы или функцию (встроенную или определяемую пользователем, но не другую агрегатную функцию SQL). Можно вычислять любой тип данных, включая текст.
Замечания
Используйте параметр Count для подсчета количества записей в базовом запросе. Например, можно использовать функцию Count для вычисления количества заказов, отправленных в определенную страну или регион.
Хотя expr может выполнять вычисление для поля, счетчик просто подсчитывает количество записей. Неважно, какие значения хранятся в записях.
Функция Count не учитывает записи, содержащие поля Null, если expr не является подстановочным знаком в виде звездочки (*). Если используется звездочка, функция Count вычисляет общее количество записей, включая записи, содержащие поля Null. Count ( * ) значительно быстрее, чем Count ( [ Имя столбца ] ). Звездочку не нужно заключать в кавычки (‘ ‘).
В приведенном ниже примере вычисляется количество записей в таблице Orders (Заказы):
SELECT Count(*) AS TotalOrders FROM Orders;
Если expr идентифицирует несколько полей, функция Count подсчитывает запись только в том случае, если хотя бы одно из полей не имеет значения NULL. Если все указанные поля имеют значение Null, запись не учитывается. Имена полей разделяются амперсандом (&). В приведенном ниже примере показано, как можно ограничить подсчет записями, в которых поле ShippedDate или Freight не равно Null:
SELECT Count('ShippedDate & Freight') AS [Not Null] FROM Orders;
Используйте Count в выражении запроса. Это выражение также можно использовать в свойстве SQL объекта QueryDef или при создании объекта Recordset на основе SQL запроса.
Пример
В этом примере используется таблица Orders (Заказы), чтобы вычислить количество заказов, отправленных в Соединенное Королевство.
В этом примере вызывается процедура EnumFields, которую можно найти в примере оператора SELECT.
Sub CountX() Dim dbs As Database, rst As Recordset ' Modify this line to include the path to Northwind ' on your computer. Set dbs = OpenDatabase("Northwind.mdb") ' Calculate the number of orders shipped ' to the United Kingdom. Set rst = dbs.OpenRecordset("SELECT" _ & " Count (ShipCountry)" _ & " AS [UK Orders] FROM Orders" _ & " WHERE ShipCountry = 'UK';") ' Populate the Recordset. rst.MoveLast ' Call EnumFields to print the contents of the ' Recordset. Pass the Recordset object and desired ' field width. EnumFields rst, 25 dbs.Close End Sub
См. также
- Форум для разработчиков Access
- Помощь при работе с Access на support.office.com
- Форумы Access на UtterAccess
- Справочный центр (FMS) для разработки и VBA программирования для Access
- Публикации по Access на StackOverflow
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Как в sql посчитать количество повторяющихся значений
Можно попробовать использовать функцию COUNT() в сочетании с оператором GROUP BY .
Предположим, у нас есть таблица «orders» с колонками «customer_name» и «order_date» , и мы хотим посчитать, сколько заказов было сделано каждым клиентом. Мы можем написать следующий SQL-запрос:
Этот запрос выберет все уникальные значения из колонки «customer_name» в таблице «orders» и подсчитает количество строк, связанных с каждым уникальным значением. Результатом запроса будет таблица со столбцами «customer_name» и «order_count» , в которой каждая строка будет показывать клиента и количество его заказов.