Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Esta función devuelve el número de elementos encontrados en un grupo.
COUNT_BIG funciona como la función COUNT. Estas funciones difieren solo en los tipos de datos de sus valores devueltos.
COUNT_BIG siempre devuelve un valor de tipo de datos bigint.
COUNT siempre devuelve un valor de tipo de datos int.
Convenciones de sintaxis de Transact-SQL
Sintaxis
Sintaxis de función de agregación:
COUNT_BIG ( { [ [ ALL | DISTINCT ] expression ] | * } )
Sintaxis de función analítica:
COUNT_BIG ( { [ ALL ] expression | * } ) OVER ( [ <partition_by_clause> ] )
Argumentos
ALL
Aplica la función de agregado a todos los valores.
ALL actúa como valor predeterminado.
DISTINCT
Especifica que COUNT_BIG devuelve el número de valores no NULL únicos.
expression
Una expresión de cualquier tipo.
COUNT_BIG no admite funciones de agregado ni subconsultas en una expresión.
*
Especifica que COUNT_BIG debe contar todas las filas para determinar el total de filas de la tabla a devolver.
COUNT_BIG(*) no toma parámetros y no admite el uso de DISTINCT.
COUNT_BIG(*) no requiere un parámetro expression porque, por definición, no usa información sobre ninguna columna concreta.
COUNT_BIG(*) devuelve el número de filas de una tabla especificada y conserva las filas duplicadas. Cuenta cada fila por separado, incluidas las filas que contienen valores de tipo null.
CAMBIO ( [ partition_by_clause ] [ order_by_clause ] )
partition_by_clause divide el conjunto de resultados generado por la cláusula FROM en particiones a las que se aplica la función COUNT_BIG. Si no especifica el partition_by_clause, la función trata todas las filas del conjunto de resultados de la consulta como un único grupo.
order_by_clause determina el orden lógico de la operación. Para obtener más información, consulte cláusula OVER.
Tipos de valores devueltos
bigint
Observaciones
COUNT_BIG(*) devuelve el número de elementos de un grupo. Este recuento incluye NULL valores y duplicados.
COUNT_BIG(ALL <expression>) evalúa la expresión para cada fila de un grupo y devuelve el número de valores no NULL.
COUNT_BIG(DISTINCT <expression>) evalúa la expresión para cada fila de un grupo y devuelve el número de valores únicos y no NULL.
Uso determinista y no determinista
COUNT_BIG es una función determinista cuando se usa sin las OVER cláusulas y ORDER BY .
COUNT_BIG no es determinista cuando se usa con las OVER cláusulas y ORDER BY .
Usos OVER y ORDER BY cláusulas |
Determinista |
|---|---|
| No | Sí |
| Sí | No |
Para más información, vea Funciones deterministas y no deterministas.
Ejemplos
Los ejemplos de código de este artículo usan la base de datos de ejemplo de AdventureWorks2025 o AdventureWorksDW2025, que puede descargar de la página principal de Ejemplos de Microsoft SQL Server y proyectos de comunidad.
A. Uso de COUNT_BIG y DISTINCT
En este ejemplo se devuelve el número de puestos de trabajo diferentes de la HumanResources.Employee tabla que un empleado puede contener.
SELECT COUNT_BIG(DISTINCT JobTitle)
FROM HumanResources.Employee;
GO
Este es el conjunto de resultados.
-----------
67
B. Usar COUNT_BIG(*)
En este ejemplo se devuelve el número total de empleados de la HumanResources.Employee tabla.
SELECT COUNT_BIG(*)
FROM HumanResources.Employee;
GO
Este es el conjunto de resultados.
-----------
290
C. Usar COUNT_BIG(*) con otros agregados
En este ejemplo se muestra que COUNT_BIG(*) funciona con otras funciones agregadas en la lista SELECT.
SELECT COUNT_BIG(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota > 25000;
GO
Este es el conjunto de resultados.
------ ---------------------
14 3472.1428
D. Uso de la cláusula OVER
En este ejemplo se usan las MINfunciones , MAX, AVGy COUNT_BIG con la OVER cláusula para devolver valores agregados para cada departamento de la HumanResources.Department tabla.
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;
Este es el conjunto de resultados.
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
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
E. Uso de COUNT_BIG y DISTINCT
Este ejemplo se muestra el número de diferentes cargos que puede tener un empleado de una empresa concreta.
USE ssawPDW;
SELECT COUNT_BIG(DISTINCT Title)
FROM dbo.DimEmployee;
Este es el conjunto de resultados.
-----------
67
F. Usar COUNT_BIG(*)
Este ejemplo devuelve el número total de filas de la tabla dbo.DimEmployee.
USE ssawPDW;
SELECT COUNT_BIG(*)
FROM dbo.DimEmployee;
Este es el conjunto de resultados.
-------------
296
G. Usar COUNT_BIG(*) con otros agregados
Este ejemplo combina COUNT_BIG(*) con otras funciones de agregado en la lista SELECT. Devuelve el número de los representantes de ventas con una cuota de ventas anual superior a 500 000 dólares y el promedio de cuota de ventas de dichos representantes.
USE ssawPDW;
SELECT COUNT_BIG(EmployeeKey) AS TotalCount,
AVG(SalesAmountQuota) AS [Average Sales Quota]
FROM dbo.FactSalesQuota
WHERE SalesAmountQuota > 500000
AND CalendarYear = 2001;
Este es el conjunto de resultados.
TotalCount Average Sales Quota
---------- -------------------
10 683800.0000
H. Uso de COUNT_BIG con HAVING
En este ejemplo se utiliza COUNT_BIG con la cláusula HAVING para devolver los departamentos de una compañía, cada uno de los cuales tiene más de 15 empleados.
USE ssawPDW;
SELECT DepartmentName,
COUNT_BIG(EmployeeKey) AS EmployeesInDept
FROM dbo.DimEmployee
GROUP BY DepartmentName
HAVING COUNT_BIG(EmployeeKey) > 15;
Este es el conjunto de resultados.
DepartmentName EmployeesInDept
-------------- ---------------
Sales 18
Production 179
I. Uso de COUNT_BIG con OVER
Este ejemplo usa COUNT_BIG con la cláusula OVER para devolver el número de productos que figura en cada uno de los pedidos de ventas especificados.
USE ssawPDW;
SELECT DISTINCT COUNT_BIG(ProductKey) OVER (PARTITION BY SalesOrderNumber) AS ProductCount,
SalesOrderNumber
FROM dbo.FactInternetSales
WHERE SalesOrderNumber IN (N'SO53115', N'SO55981');
Este es el conjunto de resultados.
ProductCount SalesOrderID
------------ -----------------
3 SO53115
1 SO55981