Boa tarde, sei que não era exatamente isso que o exercicio pediu, mas acabei desenvolvendo como a primeira solução a seguinte query
select a.nome, c.nome, avg(n.nota) as media_aluno, avg(n.nota) - (select avg(n1.nota) from nota n1) as diferenca from nota n
join resposta r on r.id = n.resposta_id
join exercicio e on e.id = r.exercicio_id
join secao s on s.id = e.secao_id
join curso c on c.id = s.curso_id
join aluno a on a.id = r.aluno_id
join matricula m on a.id = m.aluno_id
where m.data > (select sysdate - interval '6' month from dual) group by a.nome, c.nome;
Haveria alguma perda de performance com ela, ou algo do tipo? Se sim, porque? Já que aparentemente ela funcionou corretamente