Depende de quão difícil você quer que seja. Além disso, sou um pouco cauteloso em dar a resposta, porque a maioria dos problemas de SQL tem várias maneiras aceitáveis de fazer as coisas e também existem maneiras de resolver problemas de SQL de maneira desleixada que causarão outros problemas. A pessoa que "classifica" a resposta definitivamente precisa ser capaz de resolvê-la por conta própria.
Dito isto, aqui estão algumas que eu inventei em cima da minha cabeça.
Nível extremamente fácil:
Dada uma tabela de funcionários com as colunas EmpID, Nome, Sobrenome, HireDate e TerminationDate:
escreva uma consulta para retornar todos os funcionários que ainda trabalham para a empresa com sobrenomes começando com "Smith", classificados por sobrenome e primeiro nome.
Nível fácil
Dada a tabela Funcionário acima, além de uma nova tabela "Análises anuais" com as colunas EmpID e ReviewDate:
escreva uma consulta para retornar todos os funcionários que nunca tiveram uma revisão classificada por HireDate.
Nível médio
Dada a tabela de funcionários acima, escreva uma consulta para calcular a diferença (em dias) entre o funcionário com menos e o cargo ainda trabalhando para a empresa?
Nível difícil
Dada a tabela de funcionários acima, escreva uma consulta para calcular o período mais longo (em dias) que a empresa passou sem contratar ou demitir ninguém.
Nível mais difícil
Usando novamente as mesmas tabelas, escreva uma consulta que retorne cada funcionário e, para cada linha / funcionário, inclua o maior número de funcionários que trabalhavam para a empresa a qualquer momento durante seu mandato e a primeira data em que o máximo foi atingido. Pontos extras por não usar cursores.