Функция COUNT (Transact-SQL)

Возвращает количество элементов в группе. Функция COUNT работает как функция COUNT_BIG. Единственное различие между двумя функциями — возвращаемые значения. Функция COUNT всегда возвращает значение типа int. Функция COUNT_BIG всегда возвращает значение типа данных bigint. Может следовать за предложением OVER.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL


COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } ) 

ALL

Применяет статистическую функцию ко всем значениям. ALL применяется по умолчанию.

DISTINCT

Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL.

expression

Выражение любого типа, за исключением text, image или ntext. Статистические функции и вложенные запросы запрещены.

*

Указывается, что при возврате общего числа строк в таблице необходимо посчитать все строки. Функция COUNT(*) не принимает аргументы и не может использоваться с ключевым словом DISTINCT. Для функции COUNT(*) не нужен аргумент expression, так как по определению она не использует сведения о каких-либо конкретных столбцах. Функция COUNT(*) возвращает количество строк в указанной таблице, не отбрасывая дублированные строки. Подсчитывает каждую строку отдельно. При этом учитываются и строки, содержащие значения NULL.

ms175997.note(ru-ru,SQL.90).gifВажно!
Отдельные статистические функции, например AVG(DISTINCT column_name), COUNT(DISTINCT column_name), MAX(DISTINCT column_name), MIN(DISTINCT column_name) и SUM(DISTINCT column_name) при использовании CUBE или ROLLUP не поддерживаются. При их использовании компонент Microsoft SQL Server 2005 Database Engine возвращает сообщение об ошибке и отменяет запрос.

Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.

Функция COUNT(ALL expression) оценивает expression для каждой строки в группе и возвращает количество значений, не равных NULL.

Функция COUNT(DISTINCT expression) оценивает expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL.

Для возвращаемых значений, больших 2^31-1, функция COUNT формирует сообщение об ошибке. Вместо этого следует использовать COUNT_BIG.

A. Использование функции COUNT и аргумента DISTINCT

В следующем примере приводится количество различных должностей, которые могут иметь служащие, работающие в компании Adventure Works Cycles.

USE AdventureWorks;
GO
SELECT COUNT(DISTINCT Title)
FROM HumanResources.Employee;
GO

Ниже приводится результирующий набор.

----------- 
67

(1 row(s) affected)

Б. Использование функции COUNT(*)

В следующем примере определяется общее количество служащих, работающих в компании Adventure Works Cycles.

USE AdventureWorks;
GO
SELECT COUNT(*)
FROM HumanResources.Employee;
GO

Ниже приводится результирующий набор.

            
----------- 
290

(1 row(s) affected)

В. Использование функции COUNT(*) совместно с другими статистическими функциями

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

USE AdventureWorks;
GO
SELECT COUNT(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota > 25000;
GO

Ниже приводится результирующий набор.

                                 
----------- --------------------- 
14            3472.1428
(1 row(s) affected)

Добавления сообщества

ДОБАВИТЬ
Показ: