Nmero de participantes
Duracin de la actividad
Materiales
Internet
PostgreSQL
Procesador de texto
01:30
INSTRUCCIONES
1. Estudie el diagrama conceptual lgico que acompaa a este laboratorio
2. En postgreSQL cree una base de datos con nombre N5_L4 y en ella restaure (restore) el
backup que acompaa a este laboratorio.
3. Para cada problema llenar la tabla de la consulta, construir la instruccin SQL de la solucin y
la consulta de prueba.
a. [0.5] El departamento de publicidad requiere un informe consolidado de ventas, de las
diferentes marcas de mviles, el reporte debe contener la marca, y por cada una de
ellas el promedio de costos de mviles, la cantidad de mviles y el costo total de los
mviles vendidos. En el informe deben aparecer primero las marcas que ms cantidad
de mviles han vendido. Ejecute la consulta en postgresql y llame al script puntoA.sql
Registros afectados 7.
Consulta
Campos Ma.nombre, avg(m.valor), count(m.id_movil), sum(m.valor)
Tablas
Marca ma , mvil m, modelo mo
Condicio
nes
Filtros
Relacio
nes
ma.id_marca=mo.id_marca and
mo.id_modelo=m.id_modelo
Grupos Ma.nombre
Condiciones de
grupo
Ordenamientos Count(m.id_movil) desc;
Instruccin SQL Select
ma.nombre,
avg(mo.valor),
sum(m.valor)
from marca ma, mvil m, modelo mo
where ma.id_marca=mo.id_marca and
mo.id_modelo=mo.id_modelo
group by ma.nombre
order by count(m.id_movil) desc;
count(m.id_movil),
b. [1.0] La empresa de telefona mvil UFF ha decidido iniciar una campaa de tarifas
especiales para el prximo ao a las personas, para ello requiere un informe con el
nombre de la persona, la ciudad donde vive, fecha de nacimiento, la cantidad de
mviles que tiene y el dinero total que representan esos mviles. Esta vez la empresa
nicamente realizar la campaa a las personas nacidas en enero de cualquier ao. En
el reporte primero deben aparecer las personas que ms tienen mviles. Ejecute la
consulta en postgresql y llame al script puntoB.sql. Registros afectados 9.
Consulta
Campos P.nombre_completo,
persona.ciudad,
persona.fecha_nacimiento,
COUNT(mvil.id_persona),
Condicio
nes
SUM(mvil.valor)
Tablas Persona , movil
Filtros
extract(month from persona.fecha_nacimiento) = 01
Relacio
nes
movil.id_persona=persona.id_persona
Grupos persona.nombre_completo,
persona.ciudad,
persona.fecha_nacimiento
Condiciones de
grupo
Ordenamientos count(movil.id_persona) desc;
Instruccin SQL
Select
persona.nombre_completo,
persona.ciudad,
persona.fecha_nacimiento,
count(movil.id_persona),
sum(movil.valor)
from persona, movil
where extract(month from persona.fecha_nacimiento) = 01
and
movil.id_persona=persona.id_persona
group
by
persona.nombre_completo,
persona.ciudad,
persona.fecha_nacimiento
order by count(movil.id_persona) desc;
Instruccin SQL
update servicio
set fecha_caducidad= fecha_caducidad + 60,
valor= valor-(valor*0.05)
where fecha_caducidad is not null and
id_movil in (select id_movil
Dato
Ciudad de la persona
Nombre
completo
de
persona
Direccin de la persona
Cantidad
de
mviles
comprados
Valor total de los mviles
comprados
Promedio de valor total
de mviles comprados
Primera
activacin
activados
Solicion
Alineacin y descripcin
Select rpad(persona.ciudad,30, )||
rpad(persona.nombre_completo,100,)||
Rpad(persona.direccion,100,)||
Lpad(COUNT(mvil.id_persona)::text,10,0)||
Lpad(SUM(mvil.valor)::text,15,0)||
Lpad(AVG(mvil.valor)::text,15,0)||
rpad(to_char(servicio.fecha_activacion.Day
DD Month
YYYY),40, )
fecha
de From persona, mvil, servicio
de servicios Where persona.id_persona= mvil.id_persona and
Servicio.id_servicio = mvil.id_persona
Group by persona.ciudad, persona.nombre_completo,
persona.direccion, servicio_activacion
Order by CIUNT(mvil.id_persona) DESC;
Primero deben aparecer las personas con ms mviles y ms accesorios comprados. Tome la
decisin sobre el tipo (fijo o variable) de archivo plano de datos a genera y su nombre y