Dipende da quanto difficile vuoi che sia. Inoltre, sono un po 'cauto nel darti la risposta perché molti problemi SQL hanno diversi modi accettabili per fare le cose e ci sono anche modi per risolvere problemi SQL in modi sciatti che causano altri problemi. La persona che "classifica" la risposta ha sicuramente bisogno di essere in grado di risolverla da sola.
Detto questo, eccone alcuni che mi sono venuti in mente.
Livello estremamente facile:
Data una tabella dei dipendenti con le colonne EmpID, FirstName, Lastname, HireDate e TerminationDate:
Scrivi una query per restituire tutti i dipendenti che ancora lavorano per la società con cognomi che iniziano con "Smith" ordinati per cognome e nome.
Livello facile
Data la tabella Employee sopra, oltre a una nuova tabella "AnnualReviews" con le colonne EmpID e ReviewDate:
Scrivi una query per restituire tutti i dipendenti che non hanno mai avuto una revisione ordinata da HireDate.
Livello medio
Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare la differenza (in giorni) tra il dipendente più o meno occupato che ancora lavora per la società?
Livello difficile
Data la tabella dei dipendenti di cui sopra, scrivi una query per calcolare il periodo più lungo (in giorni) in cui l'azienda è andata senza assumere o licenziare nessuno.
Livello più difficile
Sempre usando le stesse tabelle, scrivi una query che restituisce ogni dipendente e per ogni riga / dipendente include il maggior numero di dipendenti che ha lavorato per la società in qualsiasi momento durante il loro mandato e la prima data in cui è stato raggiunto il massimo. Punti extra per non usare i cursori.