Функция Count (Microsoft Access SQL)

Область применения: Access 2013 | Access 2016

Вычисляет количество записей, возвращенных запросом.

Синтаксис

Count(expr)

Заполнитель 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 

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.