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