COUNT (Transact-SQL)
Devuelve el número de elementos de un grupo. COUNT funciona como la función COUNT_BIG. La única diferencia entre ambas funciones está en los valores devueltos. COUNT siempre devuelve un valor de tipo de datos int. COUNT_BIG siempre devuelve un valor de tipo de datos bigint. Puede ir seguida de la cláusula OVER.
COUNT(*) devuelve el número de elementos de un grupo. Se incluyen valores NULL y duplicados.
COUNT(ALL expression) evalúa expression en todas las filas del grupo y devuelve el número de valores no NULL.
COUNT(DISTINCT expression) evalúa expression en todas las filas del grupo y devuelve el número de valores no NULL únicos.
Si los valores devueltos son superiores a 2^31-1, COUNT genera un error. En su lugar, utilice COUNT_BIG.
A. Usar COUNT y DISTINCT
En el ejemplo siguiente se muestra el número de cargos diferentes que puede tener un empleado que trabaja en Adventure Works Cycles.
USE AdventureWorks2008R2; GO SELECT COUNT(DISTINCT JobTitle) FROM HumanResources.Employee; GO
El conjunto de resultados es el siguiente.
-----------
67
(1 row(s) affected)
B. Usar COUNT(*)
En el ejemplo siguiente se muestra el número total de empleados que trabajan en Adventure Works Cycles.
USE AdventureWorks2008R2; GO SELECT COUNT(*) FROM HumanResources.Employee; GO
El conjunto de resultados es el siguiente.
-----------
290
(1 row(s) affected)
C. Usar COUNT(*) con otros agregados
En el ejemplo siguiente se muestra que COUNT(*) se puede combinar con otras funciones de agregado de la lista seleccionada.
USE AdventureWorks2008R2; GO SELECT COUNT(*), AVG(Bonus) FROM Sales.SalesPerson WHERE SalesQuota > 25000; GO
El conjunto de resultados es el siguiente.
----------- ---------------------
14 3472.1428
(1 row(s) affected)