COUNT (Transact-SQL)

Devuelve el número de elementos de un grupo. COUNT funciona como 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.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • ALL
    Aplica la función de agregado a todos los valores. ALL es el valor predeterminado.
  • DISTINCT
    Especifica que COUNT devuelva el número de valores únicos no NULL.
  • expression
    Es una expression de cualquier tipo excepto text, image o ntext. No se permite utilizar funciones de agregado ni subconsultas.
  • *
    Especifica que se deben contar todas las filas para devolver el número total de filas de una tabla. COUNT(*) no acepta parámetros y no se puede utilizar con DISTINCT. COUNT(*) no requiere un parámetro expression porque, por definición, no utiliza información sobre ninguna columna específica. COUNT(*) devuelve el número de filas de una tabla especificada sin deshacerse de las duplicadas. Cuenta cada fila por separado. Se incluyen las filas que contienen valores NULL.

    ms175997.note(es-es,SQL.90).gifImportante:
    No se admiten agregados Distinct, por ejemplo AVG(DISTINCT column_name), COUNT(DISTINCT column_name), MAX(DISTINCT column_name), MIN(DISTINCT column_name) y SUM(DISTINCT column_name) cuando se utilizan CUBE o ROLLUP. Si se utilizan, el SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) de Microsoft devuelve un mensaje de error y cancela la consulta.

Tipos de valor devueltos

int

Notas

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.

Ejemplos

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 AdventureWorks;
GO
SELECT COUNT(DISTINCT Title)
FROM HumanResources.Employee;
GO

Éste es el conjunto de resultados.

----------- 
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 AdventureWorks;
GO
SELECT COUNT(*)
FROM HumanResources.Employee;
GO

Éste es el conjunto de resultados.

            
----------- 
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 AdventureWorks;
GO
SELECT COUNT(*), AVG(Bonus)
FROM Sales.SalesPerson
WHERE SalesQuota > 25000;
GO

Éste es el conjunto de resultados.

                                 
----------- --------------------- 
14            3472.1428
(1 row(s) affected)

Vea también

Referencia

Funciones de agregado (Transact-SQL)
COUNT_BIG (Transact-SQL)
OVER (cláusula de Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005