Aracılığıyla paylaş


count (Transact-sql)

Gruptaki öğelerin sayısını döndürür. count çalışır gibi COUNT_BIG işlevi. İki işlev arasındaki tek fark, dönüş değerleri olduğunu. SAYISI her zaman döndürür bir intveri türü değeri. COUNT_BIG her zaman döndürür bir bigintveri türü değeri. Tarafından takip edilmesi yan tümcesi içinde.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • ALL
    Toplama işlevi, tüm değerleri için geçerlidir. TÜM varsayılan olduğunu.

  • FARKLI
    count benzersiz nonnull değerlerin sayısını verir belirtir.

  • expression
    Olan bir ifade dışında herhangi bir türde text, image, ya ntext. Toplama işlevleri ve alt sorgular verilmez.

  • *
    Tüm satırlar tablodaki satırların sayısı dönmek için sayılması belirtir. count (*) hiçbir parametre alır ve DISTINCT ile kullanılamaz. count (*) does değil istemek bir expressionparametre tanımına göre bu belirli herhangi bir sütun hakkında bilgi kullanmadığından,. count (*) kopyalarını kurtulmak olmadan belirtilen tablodaki satır sayısını döndürür. Her satır ayrı olarak sayar. Bu, null değerleri içeren satırları içerir.

Dönüş Türleri

int

Açıklamalar

count(*), bir grup için öğe sayısını döndürür. Bu, null değerleri ve yinelemeler içerir.

count (tüm expression) değerlendirir expressionbir grup içindeki her satır için ve nonnull değerlerin sayısını verir.

count (DISTINCT expression) değerlendirir expressionbir grup içindeki her satır için benzersiz, nonnull değerlerin sayısını verir.

İçin dönüş değerlerini büyük 2 ^ 31-1, say bir hata üretir. COUNT_BIG kullanın.

Örnekler

A.count kullanarak ve farklı

Aşağıdaki örnek listeler sayısı farklı başlıklar da çalışıyor bir çalışan Adventure Works Cyclestutabilir.

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

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

Sonuç kümesi buradadır.

-----------

67

(1 row(s) affected)

B.count(*) kullanarak

Aşağıdaki örnek, çalışan çalışanların toplam sayısını bulur Adventure Works Cycles.

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

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

Sonuç kümesi buradadır.

-----------

290

(1 row(s) affected)

C.Diğer toplamları ile count(*) kullanma

Aşağıdaki örnek gösteren COUNT(*)diğer toplu işlevleri seçme listesinde birleştirilebilir.

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

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

Sonuç kümesi buradadır.

----------- ---------------------

14 3472.1428

(1 row(s) affected)

C.ÜZERINDEN yan tümcesi kullanarak

MIN, max, avg ve count işlevler ÜZERINDEN yan tümcesi ile her bir bölüm için toplanmış değerlerini sağlamak için aşağıdaki örnek kullanır HumanResources.Departmenttablosu.

USE AdventureWorks2012; 
GO
SELECT DISTINCT Name
       , MIN(Rate) OVER (PARTITION BY edh.DepartmentID) AS MinSalary
       , MAX(Rate) OVER (PARTITION BY edh.DepartmentID) AS MaxSalary
       , AVG(Rate) OVER (PARTITION BY edh.DepartmentID) AS AvgSalary
       ,COUNT(edh.BusinessEntityID) OVER (PARTITION BY edh.DepartmentID) AS EmployeesPerDept
FROM HumanResources.EmployeePayHistory AS eph
JOIN HumanResources.EmployeeDepartmentHistory AS edh
     ON eph.BusinessEntityID = edh.BusinessEntityID
JOIN HumanResources.Department AS d
 ON d.DepartmentID = edh.DepartmentID
WHERE edh.EndDate IS NULL
ORDER BY Name;

USE AdventureWorks2012; 
GO
SELECT DISTINCT Name
       , MIN(Rate) OVER (PARTITION BY edh.DepartmentID) AS MinSalary
       , MAX(Rate) OVER (PARTITION BY edh.DepartmentID) AS MaxSalary
       , AVG(Rate) OVER (PARTITION BY edh.DepartmentID) AS AvgSalary
       ,COUNT(edh.BusinessEntityID) OVER (PARTITION BY edh.DepartmentID) AS EmployeesPerDept
FROM HumanResources.EmployeePayHistory AS eph
JOIN HumanResources.EmployeeDepartmentHistory AS edh
     ON eph.BusinessEntityID = edh.BusinessEntityID
JOIN HumanResources.Department AS d
 ON d.DepartmentID = edh.DepartmentID
WHERE edh.EndDate IS NULL
ORDER BY Name;

Sonuç kümesi buradadır.

Name                          MinSalary             MaxSalary             AvgSalary             EmployeesPerDept
----------------------------- --------------------- --------------------- --------------------- ----------------
Document Control              10.25                 17.7885               14.3884               5
Engineering                   32.6923               63.4615               40.1442               6
Executive                     39.06                 125.50                68.3034               4
Facilities and Maintenance    9.25                  24.0385               13.0316               7
Finance                       13.4615               43.2692               23.935                10
Human Resources               13.9423               27.1394               18.0248               6
Information Services          27.4038               50.4808               34.1586               10
Marketing                     13.4615               37.50                 18.4318               11
Production                    6.50                  84.1346               13.5537               195
Production Control            8.62                  24.5192               16.7746               8
Purchasing                    9.86                  30.00                 18.0202               14
Quality Assurance             10.5769               28.8462               15.4647               6
Research and Development      40.8654               50.4808               43.6731               4
Sales                         23.0769               72.1154               29.9719               18
Shipping and Receiving        9.00                  19.2308               10.8718               6
Tool Design                   8.62                  29.8462               23.5054               6

 (16 row(s) affected)

Name                          MinSalary             MaxSalary             AvgSalary             EmployeesPerDept
----------------------------- --------------------- --------------------- --------------------- ----------------
Document Control              10.25                 17.7885               14.3884               5
Engineering                   32.6923               63.4615               40.1442               6
Executive                     39.06                 125.50                68.3034               4
Facilities and Maintenance    9.25                  24.0385               13.0316               7
Finance                       13.4615               43.2692               23.935                10
Human Resources               13.9423               27.1394               18.0248               6
Information Services          27.4038               50.4808               34.1586               10
Marketing                     13.4615               37.50                 18.4318               11
Production                    6.50                  84.1346               13.5537               195
Production Control            8.62                  24.5192               16.7746               8
Purchasing                    9.86                  30.00                 18.0202               14
Quality Assurance             10.5769               28.8462               15.4647               6
Research and Development      40.8654               50.4808               43.6731               4
Sales                         23.0769               72.1154               29.9719               18
Shipping and Receiving        9.00                  19.2308               10.8718               6
Tool Design                   8.62                  29.8462               23.5054               6

 (16 row(s) affected)

Ayrıca bkz.

Başvuru

Toplama işlevleri (Transact-sql)

COUNT_BIG (Transact-sql)

Yan (Transact-sql)