1. DB Esami DB Esami – Aggregazione e raggruppamento
`
S (Matr, SNome, Citta, ACorso) Numero di studenti presenti
C (CC, CNome, CD)
FK: CD REFERENCES D SELECT COUNT(*)
S
D (CD, CN
(CD CNome, Citt )
Citta) FROM S
Matr SNome Citta Acorso
E (Matr, CC, Data, Voto) E
FK:
FK Matr REFERENCES S Matr
M t CC D t Voto
Data V t
FK: CC REFERENCES C C
Basi di Dati CC CN
CNome CD
D
CD CNome Citta
Esercizi di interrogazioni complesse (I parte)
2 Esercizi di interrogazioni complesse (I parte) 3 Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento DB Esami – Aggregazione e raggruppamento DB Esami – Aggregazione e raggruppamento
` ` `
Numero di studenti che hanno sostenuto almeno un esame Voto medio degli esami sostenuti dalla matricola 123 Voto massimo e minimo ottenuto per ogni studente,
escludendo il corso C323
ld d
SELECT COUNT(DISTINCT Matr) SELECT AVG(Voto)
SELECT M t MAX(V t ) MIN(V t )
Matr,MAX(Voto),MIN(Voto)
FROM E FROM E WHERE Matr='123'
FROM E
WHERE CC <> ‘C323'
C323
SELECT SUM(V )/COUNT(V )
SUM(Voto)/COUNT(Voto)
GROUP BY Matr
FROM E WHERE Matr='123'
4 Esercizi di interrogazioni complesse (I parte) 5 Esercizi di interrogazioni complesse (I parte) 6 Esercizi di interrogazioni complesse (I parte)
DB Esami – Aggregazione e raggruppamento DB Esami – Aggregazione e raggruppamento DB Esami – Aggregazione e raggruppamento
` ` `
Voto massimo e minimo ottenuto per ogni studente, Codice e nome di un corso, e relativo numero di esami Numero di esami per ogni voto compreso tra 22 e 28
visualizzando anche il nome d ll studente
i li d h dello d sostenuti
i
SELECT Voto, COUNT(*)
SELECT E M t S SN
E.Matr, S.SNome, MAX(V t ) MIN(V t )
MAX(Voto),MIN(Voto) SELECT C CC C CN
C.CC,C.CNome,COUNT(*)
COUNT(*) FROM E
FROM E, S FROM E,C GROUP BY Voto
WHERE S MATR = E.MATR
S.MATR E MATR WHERE E CC=C CC
E.CC=C.CC HAVING VVoto BETWEEN 22 AND 28
GROUP BY E.Matr, S.Snome GROUP BY C.CC,C.CNome
SELECT V t COUNT(*)
Voto,
FROM E
WHERE Voto BETWEEN 22 AND 28
GROUP BY Voto
7 Esercizi di interrogazioni complesse (I parte) 8 Esercizi di interrogazioni complesse (I parte) 9 Esercizi di interrogazioni complesse (I parte)
2. DB Esami – Aggregazione e raggruppamento DB Esami – Aggregazione e raggruppamento DB Mobili
Articoli (Art_Cod, Cat_Cod, Art_Descrizione, Art_Prezzo, Art_IVA,
` `
Media dei voti per ogni esame sostenuto da più di due Matricola degli studenti che hanno sostenuto almeno due
Art_Spese_Trasporto)
p p )
studenti
di esami con l stesso voto
i lo FK: Cat_Cod REFERENCES Categorie
Categorie (Cat_Cod, Cat_Descrizione)
Componenti (Com_Cod, Com Descrizione, Com Costo, Lab Cod)
(Com Cod, Com_Descrizione, Com_Costo, Lab_Cod)
SELECT CC AVG(V t )
CC,AVG(Voto) SELECT M t
Matr FK: Lab_Cod REFERENCES Laboratori
FROM E FROM E Laboratori (Lab_Cod, Lab_Indirizzo, Lab_Citta, Lab_Telefono)
Ordini (Ord Cod Neg Cod Ord Data)
(Ord_Cod, Neg_Cod, Ord_Data)
GROUP BY CC GROUP BY MatrVoto
Matr,Voto
FK: Neg_Cod REFERENCES Negozi
HAVING COUNT(*) > 2 HAVING COUNT(CC) >= 2 Negozi (Neg_Cod, Neg_Nome, Neg_Indirizzo, Neg_Citta, Neg_Telefono)
CompArt (Art Cod Com Cod CompArt Qta)
(Art_Cod, Com_Cod, CompArt_Qta)
FK: Art_Cod REFERENCES Articoli
FK: Com_Cod REFERENCES Componenti
OrdArt (Ord Cod Art Cod OrdArt Qta)
(Ord_Cod, Art_Cod, OrdArt_Qta)
FK: Ord_Cod REFERENCES Ordini
FK: Art_Cod REFERENCES Articoli
10 Esercizi di interrogazioni complesse (I parte) 11 Esercizi di interrogazioni complesse (I parte) 12 Esercizi di interrogazioni complesse (I parte)
Ordini
Ord_Cod
Neg_Cod
g_
DB Mobili DB Mobili – Aggregazione e raggruppamento DB Mobili – Aggregazione e raggruppamento
Ord_Data
` `
La minima e la massima quantità di articoli richiesti in un La media dei prezzi dei componenti non prodotti in alcun
OrdArt
Negozi ordine
di laboratorio
lb i
Ord_Cod
Art_Cod
Neg_Cod
OrdArt_Qta
Neg_Nome
Neg_Indirizzo
g_
Articoli SELECT MIN(O dA t Qt ) , MAX(O dA t Qt )
MIN(OrdArt_Qta) MAX(OrdArt_Qta) SELECT AVG(C
AVG(Com_Costo)
C t)
Neg_Citta
Neg_Telefono Art_Cod
FROM OrdArt FROM Componenti
Cat_Cod
Art_Descrizione
WHERE Lab Cod IS NULL
Lab_Cod
Art_Prezzo
Categorie
Art_IVA
Cat_Cod Art_Spese_Trasporto
Cat_Descrizione
CompArt
Art_Cod
Laboratori Com_Cod
CompArt_Qta
CompArt Qta
Lab_Cod
Lab_Indirizzo
Componenti
Lab_Citta
Lab_Telefono Com_Cod
Com Cod
Com_Descrizione
Com_Costo
13 Esercizi di interrogazioni complesse (I parte) 14 Esercizi di interrogazioni complesse (I parte) 15 Esercizi di interrogazioni complesse (I parte)
Lab_Cod
DB Mobili – Aggregazione e raggruppamento DB Mobili – Aggregazione e raggruppamento DB Mobili – Aggregazione e raggruppamento
` ` `
Il prezzo più alto per ciascuna categoria Quanti laboratori sono presenti in ciascuna città, escludendo le Da quanti componenti è composto ciascun articolo,
città con un solo l b
ià l laboratorio
i considerando solo gli articoli composti d almeno 10
id d l li i li i da l
componenti
SELECT Cat_Cod, MAX(Art_Prezzo)
SELECT L b Citt COUNT(L b Citt )
Lab_Citta, COUNT(Lab_Citta)
FROM Articoli
SELECT Art_Cod, SUM(CompArt_Qta)
FROM Laboratori
GROUP BY Cat_Cod
FROM CompArt
GROUP BY Lab Citta
Lab_Citta
GROUP BY Art_Cod
HAVING COUNT(Lab_Citta) > 1
HAVING SUM(CompArt Qta) > 10
SUM(CompArt_Qta) >=
16 Esercizi di interrogazioni complesse (I parte) 17 Esercizi di interrogazioni complesse (I parte) 18 Esercizi di interrogazioni complesse (I parte)