Liczba (Transact-SQL)
Zwraca liczbę elementów w grupie.Licznik działa podobnie jak COUNT_BIG funkcja.Jedyną różnicą między dwie funkcje jest ich wartości zwracanych.COUNT zawsze zwraca wartość typu danych int.COUNT_BIG zawsze zwraca bigint Typ danych wartości.Mogą być uzupełniane przez nad klauzula.
Składnia
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
Argumenty
ALL
Dotyczy wszystkich wartościfunkcja wartość zagregowana. Jest wartością domyślną.DISTINCT
Określa, że liczba zwraca liczbę niepustych wartości unikatowe.expression
Jest wyrażenie dowolnego typu, z wyjątkiem text, image, lub ntext.Funkcje agregujące i podkwerend nie są dozwolone.*
Określa, że wszystkie wiersze powinny być liczone Zwraca całkowitą liczbę wierszy w tabela.Liczba (*) nie ma parametrów i nie może być używany z DISTINCT.Liczba (*) nie wymaga expression parametr ponieważ z definicji nie używa informacji o określonej kolumna.Liczba (*) zwraca liczbę wierszy w określonej tabela bez pozbywanie się duplikatów.W każdym wierszu są liczone oddzielnie.Zawiera wiersze, które zawierają wartości null .
Zwracane typy
int
Uwagi
COUNT(*) zwraca liczbę elementów w grupie.Obejmuje to wartości NULL i duplikatów.
Liczba (wszystkie expression) ocenia expression dla każdego wiersza w grupie i zwraca liczbę niepustych wartości.
Liczba (DISTINCT expression) ocenia expression dla każdego wiersza w grupie i zwraca liczbę wartości unikatowe, niepustych.
W przypadku zwracają wartości większej niż 2 ^ 31-1, liczba generuje błąd.Zamiast tego użyj COUNT_BIG.
Przykłady
A.Liczba i DISTINCT
Na poniższych listach przykładzie liczba różnych tytuły, które pracownik, który pracuje w Adventure Works Cycles , można przytrzymać.
USE AdventureWorks2008R2;
GO
SELECT COUNT(DISTINCT JobTitle)
FROM HumanResources.Employee;
GO
Oto zestaw wyników.
-----------
67
(1 row(s) affected)
B.Za pomocą COUNT(*)
Następujący przykład wyszukuje łączną liczbę pracowników, którzy pracują w Adventure Works Cycles.
USE AdventureWorks2008R2;
GO
SELECT COUNT(*)
FROM HumanResources.Employee;
GO
Oto zestaw wyników.
-----------
290
(1 row(s) affected)
C.Przy użyciu innych agregatach COUNT(*)
Poniższy przykład pokazuje, że COUNT(*) może być łączone z innych funkcji wartość zagregowana , na liście select.
USE AdventureWorks2008R2;
GO
SELECT COUNT(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota > 25000;
GO
Oto zestaw wyników.
----------- ---------------------
14 3472.1428
(1 row(s) affected)
Zobacz także