Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-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