Skip to content

Esercizi Classi SQL

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 NumeroFilm
FROM Film
GROUP BY ID_Genere
HAVING 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 NumeroDipendenti
FROM Dipendente
GROUP BY ID_Dipartimento
HAVING 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 NumeroProdotti
FROM Prodotto
GROUP BY ID_Fornitore
HAVING 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 NumeroCorsi
FROM Corso
GROUP BY ID_Dipartimento
HAVING 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 NumeroStudenti
FROM Iscrizione
GROUP BY ID_Corso
HAVING 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 NumeroLibri
FROM Libro
GROUP BY ID_Autore
HAVING 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 NumeroDipendenti
FROM Dipendente
GROUP BY LivelloEsperienza
HAVING 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 NumeroOrdini
FROM Ordine
GROUP BY ID_Cliente
HAVING 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 NumeroProdotti
FROM DettaglioOrdine
GROUP BY ID_Ordine
HAVING 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 NumeroDipendenti
FROM Dipendente
GROUP BY Ruolo
HAVING COUNT(*) >= 3;