33 - Contar registros (count)


Problema:
Un comercio que tiene un stand en una feria registra en una tabla llamada "visitantes" algunos 
datos de las personas que visitan o compran en su stand para luego enviarle publicidad de sus 
productos.

1- Elimine la tabla "visitantes", si existe.

2- Créela con la siguiente estructura:
 create table visitantes(
  nombre varchar(30),
  edad tinyint unsigned,
  sexo char(1),
  domicilio varchar(30),
  ciudad varchar(20),
  telefono varchar(11),
  montocompra decimal (6,2) unsigned
 );

3- Ingrese algunos registros:
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Susana Molina', 28,'f','Colon 123','Cordoba',null,45.50); 
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25); 
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Teresa Garcia',33,'f','Gral. Paz 123','Alta Gracia','03547123456',0);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233',25);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Julieta Gomez',24,'f','San Martin 333','Alta Gracia','03547121212',53.50);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Roxana Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48);
 insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra)
  values ('Juan Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30);

4- Solicite la cantidad de visitantes al stand (10 registros):
 select count(*) from visitantes;

5- Solicite la cantidad de visitantes que tienen teléfono (valor no nulo) (8 registros):
 select count(telefono)
  from visitantes;

Recuerde que no es lo mismo contar todos los registros que contar los que tienen teléfono, porque 
en el segundo caso no considera los registros con valor nulo en el campo "telefono".

6- Muestre la cantidad de visitantes de sexo masculino que acudieron al stand (3):
 select count(*) from visitantes
  where sexo='m';

7- Muestre la cantidad de mujeres mayores de 25 años que acudieron al stand (4):
 select count(*) from visitantes
  where sexo='f' and
  edad>25;

8- Muestre la cantidad de visitantes que no son de "Cordoba" (5):
 select count(*) from visitantes
  where ciudad<>'Cordoba';

9- Muestre la cantidad de visitantes que realizaron alguna compra (7):
 select count(*) from visitantes
  where montocompra<>0;

10- Muestre la cantidad de visitantes que no realizaron compras (3):
 select count(*) from visitantes
  where montocompra=0;



 

Otros problemas:
A) Una pequeña biblioteca de barrio registra los préstamos de sus libros en una tabla 
llamada "prestamos".

1- Elimine la tabla "prestamos" si existe.

2- Cree la tabla:
 create table prestamos(
  titulo varchar(40) not null,
  documento char(8) not null,
  fechaprestamo date not null,
  fechadevuelto date
 );

La tabla registra el documento del socio a quien se le presta el libro, el título del libro 
prestado, la fecha de préstamo y la fecha en que se devuelve.

3- Ingrese los siguientes registros:
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Manual de 1 grado','23456789','2006-07-10','2006-07-12');
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('El aleph','22245679','2006-07-15',null);
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Alicia en el pais de las maravillas','24456789','2006-07-20','2006-07-22');
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Manual de biologia','25456789','2006-08-14',null);
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Manual de geografia 5 grado','27456789','2006-08-21','2006-08-25');
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Antologia poetica','28456789','2006-08-26','2006-08-27');
 insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Manual de 1 grado','23456789','2006-08-26','2006-08-28');
insert into prestamos (titulo,documento,fechaprestamo,fechadevuelto)
  values ('Manual de 1 grado','30456789','2006-09-01','2006-09-03');

4- Cuente la cantidad de veces que se prestó el libro "Manual de 1 grado":
 select count(*)
  from prestamos
  where titulo='Manual de 1 grado';

5- Cuente la cantidad de libros devueltos (contando por fechadevuelto):
 select count(fechadevuelto)
  from prestamos;

6- Cuente la cantidad de veces que se le prestaron libros a la persona con documento "23456789":
 select count(*)
  from prestamos
  where documento='23456789';

7- Cuente la cantidad de libros prestados en el mes de agosto:
 select count(*)
  from prestamos
  where month(fechaprestamo)=8;


B) Trabaje con la tabla "agenda" que registra la información referente a sus amigos.

1- Elimine la tabla si existe.

2- Cree la tabla con la siguiente estructura:
 create table agenda(
  apellido varchar(30),
  nombre varchar(20) not null,
  domicilio varchar(30),
  telefono varchar(11),
  mail varchar(30)
 );

3- Ingrese los siguientes registros:
 insert into agenda values('Perez','Juan','Sarmiento 345','4334455','juancito@gmail.com');
 insert into agenda values('Garcia','Ana','Urquiza 367','4226677','anamariagarcia@hotmail.com');
 insert into agenda values('Lopez','Juan','Avellaneda 900',null,'juancitoLopez@gmail.com');
 insert into agenda values('Juarez','Mariana','Sucre 123','0525657687','marianaJuarez2@gmail.com');
 insert into agenda values('Molinari','Lucia','Peru 1254','4590987','molinarilucia@hotmail.com');
 insert into agenda values('Ferreyra','Patricia','Colon 1534','4585858',null);
 insert into agenda values('Perez','Susana','San Martin 333',null,null);
 insert into agenda values('Perez','Luis','Urquiza 444','0354545256','perezluisalberto@hotmail.com');
 insert into agenda values('Lopez','Maria','Salta 314',null,'lopezmariayo@gmail.com');

4- Cuente cuántos de sus amigos tienen mail:
 select count(mail)
  from agenda;

5-Cuente cuántos de sus amigos tienen teléfono:
 select count(telefono)
  from agenda;

6- Cuente cuántos se apellidan "Perez":
 select count(*)
  from agenda
  where apellido like '%Perez%';

Retornar