Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercicio 7 - GROUP BY: média de notas por aluno por curso, podemos fazer GROUP BY aluno.id, curso.id.

Na resolução do exercício, a reposta do professor ficou diferente da minha, tanto no script e nos resultados da consulta. A minha dúvida é, não teria que relacionar a tabela matrícula para busca a média de cada aluno por curso?

-- opinião do professor
select a.nome, c.nome, avg(n.nota) 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
group by c.nome, a.nome

--sql feito por mim
select avg(n.nota), m.id, m.aluno_id, a.nome , m.curso_id , c.nome 
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 matricula m on m.curso_id = c.id 
join aluno a on a.id = m.aluno_id 
group by m.aluno_id, m.curso_id, a.nome, c.nome, m.id
1 resposta
solução!

Ola Aline

Eu tenho o seguinte raciocinio:

Para fazer o que o exercicio esta pedindo você precisa de no minimo as tabelas Aluno, Curso e Nota. Para você linkar as 3 tabelas você vai precisar que a tabela Nota faça um join com a Resposta que por sua vez faz um join com a Aluno e Exercicio. A tabela Exercicio faz um join com a Secao que faz um join com a Curso, fechando o ciclo e linkando todas as tabelas necessárias. A Matricula não é necessária nesse caso.