funciones agregadas en informix
TRANSCRIPT
PRÁCTICO FUNCIONES AGREGADAS
Julián AranedaGonzalo Berger
Antonio LenaSebastián Urrutia
Gastón Martini
Sistemas de Bases de Datos II
Base de DatosLa base de datos sobre la que trabajamos está constituida por partes, proveedores y proyectos, los cuáles a su vez se encuentran relacionados, formando una cuarta tabla de envíos.
TablasLas tablas resultantes son:
• S (proveedores).• P (partes).• J (proyectos).• SPJ (envíos).
ProveedoresLa tabla de proveedores está constituida por los siguientes atributos:
sid: Identificador del proveedor.snombre: Nombre del proveedor.situacion: Situación del proveedor.ciudad: Ciudad del proveedor.
PartesLa tabla de partes está constituida por los siguientes atributos:
pid: Identificador de la parte.pnombre: Nombre de la parte.color: Color de la parte.peso: Peso de la parte.ciudad: Ciudad de la parte.
ProyectosLa tabla de proyectos está constituida por los siguientes atributos:
jid: Identificador del proyecto.jnombre: Nombre del proyecto.ciudad: Ciudad del proyecto.
Funciones agregadas Count (atributo clave) – Numero de valores en la
columna. Count (*) – Numero de valores en la columna, los
valores nulos se manejan igual a los no nulos. Sum (atributo clave numérico) - Suma de los
valores de la columna. Avg (Atributo clave numérico) – Promedio de los
valores de la columna. Max () – Valor mas grande en la columna. Min () – Valor mas pequeño en la columna.
Consulta 1 Obtener el numero de proveedores
Select count (*) from s;
Consulta 2 Obtener el numero total de proveedores
que suministran partes en la actualidad. Select count (distinct sid) from spj;
Consulta 3 Obtener el numero de envíos de la parte
P2. Select count (*) from spj where pid=‘P2’;
Consulta 4 Obtener la cantidad total suministrada
de la parte P2 Select sum(cantidad) from spj where
pid=‘P2’
Consulta 5 Obtener para cada parte suministrada el
numero de parte y la cantidad enviada de esa parte.
Select pid, sum(cantidad) from spj group by pid;
Consulta 6 Obtener los números de todas las
partes suministradas por mas de un proveedor.
Select pid from spj group by pid having count(*) > 1;
Consulta 7 Obtener todas las partes cuyos nombres
comiencen con “B”. Select * from p where pnombre like ‘B
%’;
Consulta 9 Obtener todos los nombres de los
proveedores que suministran la parte P2.
Select snombre from s where sid in (select sid from spj where pid = ‘P2’)
Consulta 10 Obtener todos los nombres de los
proveedores que suministran la parte P2 Select snombre from s,spj where s.sid =
spj.sid and spj.pid=‘P2’
Consulta 11 Obtener los nombres de los
proveedores que suministran por lo menos una parte roja.
Select distinct s.snombre from s, p, spj where s.sid=spj.sid and p.pid=spj.pid and p.color=‘Rojo’
Consulta 12 Obtener los números de proveedores
situados en la misma ciudad que el proveedor “S1”.
Select sid from s where ciudad = (select ciudad from s where sid=‘S1’)
Consulta 13 Obtener los números de proveedores
cuya situación sea menor que el valor máximo actual de la situación en la tabla s.
Select sid from s where situacion < (select max (situacion) from s)
Consulta 14 Obtener los nombres de proveedores
que suministran la parte P2. Select snombre from s where exists
(select * from spj where spj.sid = s.sid and pid=‘P2’)