Какой оператор в sql посчитать количество записей
Перейти к содержимому

Какой оператор в sql посчитать количество записей

  • автор:

Функция COUNT

Функция COUNT подсчитывает количество записей в таблице. Условие, по которому будут выбираться записи, задается с помощью команды WHERE . Команда WHERE не является обязательной, если ее не указать — будут подсчитаны все записи в таблице.

Синтаксис

Подсчет всех записей:

SELECT COUNT(*) FROM имя_таблицы WHERE условие

Подсчет всех записей, где заданное поле не равно NULL:

SELECT COUNT(поле) FROM имя_таблицы WHERE условие

Только уникальные значения поля:

SELECT COUNT(DISTINCT поле) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица employees

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

Меняем таблицу для примеров

таблица employees

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» , в которой каждая строка будет показывать клиента и количество его заказов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *