Primer problema:
Una empresa tiene registrados sus clientes en una tabla llamada "clientes".
1- Créela con la siguiente estructura:
create table clientes (
codigo serial,
nombre varchar(30) not null,
domicilio varchar(30),
ciudad varchar(20),
provincia varchar (20),
telefono varchar(11),
primary key(codigo)
);
3- Ingrese algunos registros:
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Marcos','Colon 111','Cordoba','Cordoba','null');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Perez Ana','San Martin 222','Cruz del Eje','Cordoba','4578585');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Garcia Juan','Rivadavia 333','Villa del Rosario','Cordoba','4578445');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Perez Luis','Sarmiento 444','Rosario','Santa Fe',null);
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Pereyra Lucas','San Martin 555','Cruz del Eje','Cordoba','4253685');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Gomez Ines','San Martin 666','Santa Fe','Santa Fe','0345252525');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Torres Fabiola','Alem 777','Villa del Rosario','Cordoba','4554455');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Carlos',null,'Cruz del Eje','Cordoba',null);
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Ramos Betina','San Martin 999','Cordoba','Cordoba','4223366');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Lucas','San Martin 1010','Posadas','Misiones','0457858745');
3- Obtenga el total de los registros agrupados por ciudad y provincia (6 filas)
4- Obtenga el total de los registros agrupados por ciudad y provincia sin considerar los que tienen
menos de 2 clientes (3 filas)
Ver solución
drop table if exists clientes;
create table clientes (
codigo serial,
nombre varchar(30) not null,
domicilio varchar(30),
ciudad varchar(20),
provincia varchar (20),
telefono varchar(11),
primary key(codigo)
);
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Marcos','Colon 111','Cordoba','Cordoba','null');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Perez Ana','San Martin 222','Cruz del Eje','Cordoba','4578585');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Garcia Juan','Rivadavia 333','Villa del Rosario','Cordoba','4578445');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Perez Luis','Sarmiento 444','Rosario','Santa Fe',null);
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Pereyra Lucas','San Martin 555','Cruz del Eje','Cordoba','4253685');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Gomez Ines','San Martin 666','Santa Fe','Santa Fe','0345252525');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Torres Fabiola','Alem 777','Villa del Rosario','Cordoba','4554455');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Carlos',null,'Cruz del Eje','Cordoba',null);
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Ramos Betina','San Martin 999','Cordoba','Cordoba','4223366');
insert into clientes(nombre,domicilio,ciudad,provincia,telefono)
values ('Lopez Lucas','San Martin 1010','Posadas','Misiones','0457858745');
select ciudad, provincia,
count(*) as cantidad
from clientes
group by ciudad,provincia;
select ciudad, provincia,
count(*) as cantidad
from clientes
group by ciudad,provincia
having count(*)>1;
Segundo 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- Créela con la siguiente estructura:
create table visitantes(
nombre varchar(30),
edad smallint,
sexo char(1),
domicilio varchar(30),
ciudad varchar(20),
telefono varchar(11),
montocompra decimal(6,2) not null
);
2- Ingrese algunos registros:
insert into visitantes
values ('Susana Molina',28,'f',null,'Cordoba',null,45.50);
insert into visitantes
values ('Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',22.40);
insert into visitantes
values ('Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25);
insert into visitantes
values ('Teresa Garcia',33,'f',default,'Alta Gracia','03547123456',120);
insert into visitantes
values ('Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20);
insert into visitantes
values ('Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233',95);
insert into visitantes
values ('Julieta Gomez',24,'f','San Martin 333','Alta Gracia',null,53.50);
insert into visitantes
values ('Roxana Lopez',20,'f','null','Alta Gracia',null,240);
insert into visitantes
values ('Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48);
insert into visitantes
values ('Juan Torres',43,'m','Sarmiento 876','Cordoba',null,15.30);
3- Obtenga el total de las compras agrupados por ciudad y sexo de aquellas filas que devuelvan un
valor superior a 50 (3 filas)
4- Agrupe por ciudad y sexo, muestre para cada grupo el total de visitantes, la suma de sus compras
y el promedio de compras, ordenado por la suma total y considerando las filas con promedio superior
a 30 (3 filas)
Ver solución
drop table if exists visitantes;
create table visitantes(
nombre varchar(30),
edad smallint,
sexo char(1),
domicilio varchar(30),
ciudad varchar(20),
telefono varchar(11),
montocompra decimal(6,2) not null
);
insert into visitantes
values ('Susana Molina',28,'f',null,'Cordoba',null,45.50);
insert into visitantes
values ('Marcela Mercado',36,'f','Avellaneda 345','Cordoba','4545454',22.40);
insert into visitantes
values ('Alberto Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25);
insert into visitantes
values ('Teresa Garcia',33,'f',default,'Alta Gracia','03547123456',120);
insert into visitantes
values ('Roberto Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20);
insert into visitantes
values ('Marina Torres',22,'f','Colon 222','Villa Dolores','03544112233',95);
insert into visitantes
values ('Julieta Gomez',24,'f','San Martin 333','Alta Gracia',null,53.50);
insert into visitantes
values ('Roxana Lopez',20,'f','null','Alta Gracia',null,240);
insert into visitantes
values ('Liliana Garcia',50,'f','Paso 999','Cordoba','4588778',48);
insert into visitantes
values ('Juan Torres',43,'m','Sarmiento 876','Cordoba',null,15.30);
select ciudad,sexo,
sum(montocompra) as Total
from visitantes
group by ciudad,sexo
having sum(montocompra)>50;
select ciudad,sexo, count(*) as cantidad,
sum(montocompra) as total,
avg(montocompra) as promedio
from visitantes
group by ciudad,sexo
having avg(montocompra)>30
order by total;