Listado completo de tutoriales
34 - Contar registros (count) |
Existen en SQL Server funciones que nos permiten contar registros, calcular sumas, promedios, obtener valores máximos y mínimos. Estas funciones se denominan funciones de agregado y operan sobre un conjunto de valores (registros), no con datos individuales y devuelven un único valor.
Imaginemos que nuestra tabla "libros" contiene muchos registros. Para averiguar la cantidad sin necesidad de contarlos manualmente usamos la función "count()":
select count(*) from libros;
La función "count()" cuenta la cantidad de registros de una tabla, incluyendo los que tienen valor nulo.
También podemos utilizar esta función junto con la cláusula "where" para una consulta más específica. Queremos saber la cantidad de libros de la editorial "Planeta":
select count(*) from libros where editorial='Planeta';
Para contar los registros que tienen precio (sin tener en cuenta los que tienen valor nulo), usamos la función "count()" y en los paréntesis colocamos el nombre del campo que necesitamos contar:
select count(precio) from libros;
Note que "count(*)" retorna la cantidad de registros de una tabla (incluyendo los que tienen valor "null") mientras que "count(precio)" retorna la cantidad de registros en los cuales el campo "precio" no es nulo. No es lo mismo. "count(*)" cuenta registros, si en lugar de un asterisco colocamos como argumento el nombre de un campo, se contabilizan los registros cuyo valor en ese campo NO es nulo.
Ingresemos el siguiente lote de comandos en el SQL Server Management Studio:
if object_id ('libros') is not null drop table libros; create table libros( codigo int identity, titulo varchar(40) not null, autor varchar(20) default 'Desconocido', editorial varchar(20), precio decimal(6,2), primary key(codigo) ); go insert into libros values('El aleph','Borges','Emece',15.90); insert into libros values('Antología poética','J. L. Borges','Planeta',null); insert into libros values('Alicia en el pais de las maravillas','Lewis Carroll',null,19.90); insert into libros values('Matematica estas ahi','Paenza','Siglo XXI',15); insert into libros values('Martin Fierro','Jose Hernandez',default,40); insert into libros values('Aprenda PHP','Mario Molina','Nuevo siglo',null); insert into libros values('Uno','Richard Bach','Planeta',20); -- Averiguemos la cantidad de libros usando la función "count()": select count(*) from libros; -- Contamos los libros de editorial "Planeta": select count(*) from libros where editorial='Planeta'; -- Contamos los registros que tienen precio (sin tener en cuenta -- los que tienen valor nulo), select count(precio) from libros;
Tenemos como resultado: