Megosztás:


COUNT_BIG (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Ez a függvény visszaadja a csoportban talált tételek számát. COUNT_BIG úgy működik, mint a COUNT függvény. Ezek a függvények csak a visszatérési értékeik adattípusában különböznek egymástól. COUNT_BIG mindig egy bigint adattípus értéket ad vissza. COUNT mindig int adattípus értéket ad vissza.

Transact-SQL szintaxis konvenciók

Szemantika

Aggregációs függvény szintaxisa:

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

Elemzési függvény szintaxisa:

COUNT_BIG ( { [ ALL ] expression | * } ) OVER ( [ <partition_by_clause> ] )

Arguments

ALL

Az összesítő függvény alkalmazása az összes értékre. ALL alapértelmezettként szolgál.

KÜLÖNBÖZŐ

COUNT_BIG Az egyedi nem null értékek számát adja vissza.

kifejezés

Bármilyen típusú kifejezés . COUNT_BIG nem támogatja a kifejezések összesítő függvényét vagy al lekérdezését.

*

Megadja, hogy COUNT_BIG minden sort számoljon meg ahhoz, hogy meghatározza, mennyi sor száma jelent vissza. COUNT_BIG(*) nem használ paramétereket, és nem támogatja DISTINCTa . COUNT_BIG(*) nem igényel kifejezésparamétert , mert definíció szerint nem használ adatokat egyetlen oszlopról sem. COUNT_BIG(*) visszaadja a megadott táblázat sorainak számát, és megőrzi a duplikált sorokat. Minden sort külön-külön számol, beleértve azokat a sorokat is, amelyek nullértékeket tartalmaznak.

VÉGE ( [ partition_by_clause ] [ order_by_clause ] )

A partition_by_clause a klauzula által előállított FROM eredményhalmazt osztja fel partíciókra, amelyekhez a COUNT_BIG függvény alkalmazható. Ha nem adja meg a partition_by_clause, a függvény a lekérdezés eredményhalmazának összes sorát egyetlen csoportként kezeli. A order_by_clause határozza meg a művelet logikai sorrendjét. További információ: OVER záradék.

Visszatérési típusok

bigint

Megjegyzések

COUNT_BIG(*) A csoport elemeinek számát adja vissza. Ez a szám magában foglalja az NULL értékeket és az ismétlődéseket.

COUNT_BIG(ALL <expression>) kiértékeli a csoport minden sorához tartozó kifejezést , és visszaadja a nem null értékek számát.

COUNT_BIG(DISTINCT <expression>) kiértékeli a csoport minden sorához tartozó kifejezést , és visszaadja az egyedi, nem null értékek számát.

Determinisztikus és nem determinisztikus használat

COUNT_BIG determinisztikus függvény, ha a záradékok és ORDER BY a OVER záradékok nélkül használják.

COUNT_BIG nemdeterminista, ha a OVERzáradékokkal együtt ORDER BY használják.

Felhasználások OVER és ORDER BY záradékok Determinisztikus
Nem Igen
Igen Nem

További információ: Determinisztikus és nem determinisztikus függvények.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. A COUNT_BIG és a DISTINCT használata

Ez a példa az alkalmazott által tartható táblában lévő HumanResources.Employee különböző beosztások számát adja vissza.

SELECT COUNT_BIG(DISTINCT JobTitle)
FROM HumanResources.Employee;
GO

Itt van az eredmények összessége.

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

B. COUNT_BIG(*) használata

Ez a példa a táblázatban szereplő HumanResources.Employee alkalmazottak teljes számát adja vissza.

SELECT COUNT_BIG(*)
FROM HumanResources.Employee;
GO

Itt van az eredmények összessége.

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

C. COUNT_BIG(*) használata más aggregátumokkal

Ez a példa azt mutatja be, hogy COUNT_BIG(*) működik más összesítő függvények a SELECT listában.

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

Itt van az eredmények összessége.

------ ---------------------
14     3472.1428

D. Az OVER záradék használata

Ez a példa a MINzáradékkal rendelkező , MAX, AVGés COUNT_BIG függvényeket használja a OVER tábla egyes részlegeinek HumanResources.Department összesített értékeinek visszaadásához.

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

Itt van az eredmények összessége.

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

E. A COUNT_BIG és a DISTINCT használata

Ez a példa egy adott vállalat alkalmazottja által birtokolható különböző címek számát adja vissza.

USE ssawPDW;
SELECT COUNT_BIG(DISTINCT Title)
FROM dbo.DimEmployee;

Itt van az eredmények összessége.

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

F. COUNT_BIG(*) használata

Ez a példa a tábla sorainak dbo.DimEmployee teljes számát adja vissza.

USE ssawPDW;
SELECT COUNT_BIG(*)
FROM dbo.DimEmployee;

Itt van az eredmények összessége.

-------------
296

G. COUNT_BIG(*) használata más aggregátumokkal

Ez a példa kombinálja COUNT_BIG(*) a SELECT lista más összesítő függvényeivel. Visszaadja az 500 000 USD-nél nagyobb éves értékesítési kvótával rendelkező értékesítési képviselők számát, valamint az értékesítési képviselők átlagos értékesítési kvótáját.

USE ssawPDW;
SELECT COUNT_BIG(EmployeeKey) AS TotalCount,
       AVG(SalesAmountQuota) AS [Average Sales Quota]
FROM dbo.FactSalesQuota
WHERE SalesAmountQuota > 500000
      AND CalendarYear = 2001;

Itt van az eredmények összessége.

TotalCount  Average Sales Quota
----------  -------------------
10          683800.0000

H. COUNT_BIG használata a HAVING használatával

Ez a példa a COUNT_BIG záradékkal egy vállalat részlegeinek visszaadására használjaHAVING, amelyek mindegyike több mint 15 alkalmazottal rendelkezik.

USE ssawPDW;
SELECT DepartmentName,
       COUNT_BIG(EmployeeKey) AS EmployeesInDept
FROM dbo.DimEmployee
GROUP BY DepartmentName
HAVING COUNT_BIG(EmployeeKey) > 15;

Itt van az eredmények összessége.

DepartmentName  EmployeesInDept
--------------  ---------------
Sales           18
Production      179

I. A COUNT_BIG használata a OVER használatával

Ez a példa a COUNT_BIG záradékkal együtt a OVER megadott értékesítési rendelésekben szereplő termékek számát adja vissza.

USE ssawPDW;
SELECT DISTINCT COUNT_BIG(ProductKey) OVER (PARTITION BY SalesOrderNumber) AS ProductCount,
                SalesOrderNumber
FROM dbo.FactInternetSales
WHERE SalesOrderNumber IN (N'SO53115', N'SO55981');

Itt van az eredmények összessége.

ProductCount   SalesOrderID
------------   -----------------
3              SO53115
1              SO55981