Udostępnij za pośrednictwem


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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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)