Ecco degli esercizi semplici con soluzione per praticare le basi sull’utilizzo di HAVING nelle query sql.
Esercizio 1
Ottieni il numero di film per ciascun genere, ma includi solo i generi con almeno 5 film.
SELECT ID_Genere, COUNT(*) AS NumeroFilmFROM FilmGROUP BY ID_GenereHAVING COUNT(*) >= 5;
Esercizio 2
Ottieni il numero di dipendenti per ciascun dipartimento, ma includi solo i dipartimenti con almeno 3 dipendenti.
SELECT ID_Dipartimento, COUNT(*) AS NumeroDipendentiFROM DipendenteGROUP BY ID_DipartimentoHAVING COUNT(*) >= 3;
Esercizio 3
Ottieni il numero di prodotti forniti da ciascun fornitore, ma includi solo i fornitori con almeno 10 prodotti.
SELECT ID_Fornitore, COUNT(*) AS NumeroProdottiFROM ProdottoGROUP BY ID_FornitoreHAVING COUNT(*) >= 10;
Esercizio 4
Ottieni il numero di corsi per ciascun dipartimento, ma includi solo i dipartimenti con almeno 2 corsi.
SELECT ID_Dipartimento, COUNT(*) AS NumeroCorsiFROM CorsoGROUP BY ID_DipartimentoHAVING COUNT(*) >= 2;
Esercizio 5
Ottieni il numero di studenti iscritti a ciascun corso, ma includi solo i corsi con almeno 20 studenti.
SELECT ID_Corso, COUNT(*) AS NumeroStudentiFROM IscrizioneGROUP BY ID_CorsoHAVING COUNT(*) >= 20;
Esercizio 6
Ottieni il numero di libri scritti da ciascun autore, ma includi solo gli autori con almeno 3 libri.
SELECT ID_Autore, COUNT(*) AS NumeroLibriFROM LibroGROUP BY ID_AutoreHAVING COUNT(*) >= 3;
Esercizio 7
Ottieni il numero di dipendenti per ciascun livello di esperienza, ma includi solo i livelli con almeno 5 dipendenti.
SELECT LivelloEsperienza, COUNT(*) AS NumeroDipendentiFROM DipendenteGROUP BY LivelloEsperienzaHAVING COUNT(*) >= 5;
Esercizio 8
Ottieni il numero di ordini effettuati da ciascun cliente, ma includi solo i clienti con almeno 2 ordini.
SELECT ID_Cliente, COUNT(*) AS NumeroOrdiniFROM OrdineGROUP BY ID_ClienteHAVING COUNT(*) >= 2;
Esercizio 9
Ottieni il numero di prodotti venduti per ciascun ordine, ma includi solo gli ordini con almeno 5 prodotti.
SELECT ID_Ordine, COUNT(*) AS NumeroProdottiFROM DettaglioOrdineGROUP BY ID_OrdineHAVING COUNT(*) >= 5;
Esercizio 10
Ottieni il numero di dipendenti per ciascun ruolo, ma includi solo i ruoli con almeno 3 dipendenti.
SELECT Ruolo, COUNT(*) AS NumeroDipendentiFROM DipendenteGROUP BY RuoloHAVING COUNT(*) >= 3;