Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizio 2 base dei dati, Esercizi di Database Relazionali

Esercizi base dei dati politecnico di torino

Tipologia: Esercizi

2020/2021

Caricato il 20/11/2022

antonino-antoci
antonino-antoci 🇮🇹

3 documenti

1 / 1

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
homework 2
query1
- Per ogni studente che ha consegnato almeno 3 homework ricevendo in ciascuno una valutazione superiore a 4,
visualizzare il cognome dello studente, il numero totale di homework
consegnati, la valutazione media ricevuta e il numero di docenti diversi che hanno effettuato
le valutazioni.
select congnome, avg(valutazione), count(codhw), count(distinct coddocente)
from ( select matricolas ms, cognome c, count( vhc.matricolas)
from studente s, valutazione_homework_consegnati vhc
where s.matricolas=vhc.matricolas and vhc.valutazione>4
group by vhc.matricolas
having count(vhc.matricolas) >= 3) tab, valutazione_homework_consegnati vhc2
where tab.ms = vhc2.matricolas
group by vhc2.matricolas
-----------------------------------------------------------------------------------------------------------------
query2
1- Visualizzare codice e nome dei docenti che hanno dato lezioni private solo a studenti del
Liceo Scientifico (valore dell’attributo TipoScuola).
select d1.nomed, d1.coddocente
from (select d.nome,d.coddocente,count(d.coddocente) as conta
from docente d, studente s, lezioneprivata lp
where d.coddocente=lp.coddocente and s.cods=lp.cods and s.tiposcuola='liceoscientifico') tab,
(select d.nome,d.coddocente,count(d.coddocente) as conta1
from docente d, studente s, lezioneprivata lp
where d.coddocente=lp.coddocente and s.cods=lp.cods) tab1, docente d1
where tab.coddocente=tab1.coddocente and tab.conta=tab1.conta1 and d1.coddocente=tab.coddocente
2- Per i docenti che (1) hanno dato almeno una lezione privata con durata maggiore della
durata media delle lezioni impartite dai docenti che svolgono la stessa professione (del
docente considerato) e che (2) hanno dato lezioni a studenti di tutti i tipi di scuola (valori
dell’attributo TipoScuola), visualizzare codice, nome, numero totale di lezioni svolte e
corrispondente costo complessivo.
select distinct d.coddocente
from (select d.professione as professione , avg(lp.durata) as media
from docente d, lezioni_private lp
where d.coddocente=lp.coddocente
group by d.professione) tab, docente d, lezioniprivate lp1, studente s,
(select count(s.tiposcuola) as conta
from studente s) tab1
where s.cods=lp1.cods and d.coddocente=lp1.coddocente and lp1.professione= tab.professione and lp1.durata > tab.media
group by d.coddocente
having count(distinct tiposcuola)=tab1.conta
---------------------------------------------------------------------------------------------------------------------
query3
- Per ciascun docente che ha tenuto solo corsi dell’area basi di dati, visualizzare la matricola
del docente e, tra i corsi che ha tenuto, il codice del corso con il pi`u alto numero medio di
studenti presenti alle lezioni del corso.
select D.matrdoc, C.codcorso, avg(numstudentipresenti)
from (select d.matrdoc, count(d.matrdoc) as conto1
from docente d,corso c
where d.matrdoc=c.matrdoc and c.area='basi di dati'
group by d.matrdoc) tab,
(select d.matrdoc, count(d.matrdoc) as conto2
from docente d,corso c
where d.matrdoc=c.matrdoc
group by d.matrdoc) tab1, docente D, corso C, lezione l
where tab.matrdoc=tab1.matrdoc and tab2.conto1=tab1.conto2 and tab.codcorso=tab1.codcorso
and tab.matrdoc=D.matrdoc and tab.codcorso=C.codcorsoand l.codcorso=C.codcorso
group by l.codcorso
having avg(l.numstudenti)=max(avg(l.numstudenti))

Anteprima parziale del testo

Scarica Esercizio 2 base dei dati e più Esercizi in PDF di Database Relazionali solo su Docsity!

homework 2 query

  • Per ogni studente che ha consegnato almeno 3 homework ricevendo in ciascuno una valutazione superiore a 4, visualizzare il cognome dello studente, il numero totale di homework consegnati, la valutazione media ricevuta e il numero di docenti diversi che hanno effettuato le valutazioni. select congnome, avg(valutazione), count(codhw), count(distinct coddocente) from ( select matricolas ms, cognome c, count( vhc.matricolas) from studente s, valutazione_homework_consegnati vhc where s.matricolas=vhc.matricolas and vhc.valutazione> group by vhc.matricolas having count(vhc.matricolas) >= 3) tab, valutazione_homework_consegnati vhc where tab.ms = vhc2.matricolas group by vhc2.matricolas

query 1 - Visualizzare codice e nome dei docenti che hanno dato lezioni private solo a studenti del Liceo Scientifico (valore dell’attributo TipoScuola). select d1.nomed, d1.coddocente from (select d.nome,d.coddocente,count(d.coddocente) as conta from docente d, studente s, lezioneprivata lp where d.coddocente=lp.coddocente and s.cods=lp.cods and s.tiposcuola='liceoscientifico') tab, (select d.nome,d.coddocente,count(d.coddocente) as conta from docente d, studente s, lezioneprivata lp where d.coddocente=lp.coddocente and s.cods=lp.cods) tab1, docente d where tab.coddocente=tab1.coddocente and tab.conta=tab1.conta1 and d1.coddocente=tab.coddocente 2 - Per i docenti che (1) hanno dato almeno una lezione privata con durata maggiore della durata media delle lezioni impartite dai docenti che svolgono la stessa professione (del docente considerato) e che (2) hanno dato lezioni a studenti di tutti i tipi di scuola (valori dell’attributo TipoScuola), visualizzare codice, nome, numero totale di lezioni svolte e corrispondente costo complessivo. select distinct d.coddocente from (select d.professione as professione , avg(lp.durata) as media from docente d, lezioni_private lp where d.coddocente=lp.coddocente group by d.professione) tab, docente d, lezioniprivate lp1, studente s, (select count(s.tiposcuola) as conta from studente s) tab where s.cods=lp1.cods and d.coddocente=lp1.coddocente and lp1.professione= tab.professione and lp1.durata > tab.media group by d.coddocente having count(distinct tiposcuola)=tab1.conta


query

  • Per ciascun docente che ha tenuto solo corsi dell’area basi di dati, visualizzare la matricola del docente e, tra i corsi che ha tenuto, il codice del corso con il pi`u alto numero medio di studenti presenti alle lezioni del corso. select D.matrdoc, C.codcorso, avg(numstudentipresenti) from (select d.matrdoc, count(d.matrdoc) as conto from docente d,corso c where d.matrdoc=c.matrdoc and c.area='basi di dati' group by d.matrdoc) tab, (select d.matrdoc, count(d.matrdoc) as conto from docente d,corso c where d.matrdoc=c.matrdoc group by d.matrdoc) tab1, docente D, corso C, lezione l where tab.matrdoc=tab1.matrdoc and tab2.conto1=tab1.conto2 and tab.codcorso=tab1.codcorso and tab.matrdoc=D.matrdoc and tab.codcorso=C.codcorsoand l.codcorso=C.codcorso group by l.codcorso having avg(l.numstudenti)=max(avg(l.numstudenti))