Prezados, tudo bem?
Resolvi o exercício com menos linhas e tive o mesmo resultado. Tem alguma diferença que não vi? Meu código:
select a.nome, avg(n.nota) 'Média Aluno', avg(n.nota) - (select avg(n2.nota) from nota n2) 'Diferença da Média Geral' from nota n
join resposta r on n.resposta_id = r.id
join aluno a on r.aluno_id = a.id
group by a.nome;
Solução do instrutor:
select a.nome, avg(n1.nota) as media,
avg(n1.nota) - (select avg(n2.nota) from nota n2) as diferenca
from nota n1
join resposta r on r.id = n1.resposta_id
join exercicio e on e.id = r.exercicio_id
join secao s on s.id = e.secao_id
join aluno a on a.id = r.aluno_id
group by a.nome;