Essas queries correspondem ao exercício 6 do capitulo 3 do curso Banco de dados e consultas complexas com sql. Essa é o código que eu criei:
select a.nome, c.nome, avg(n.nota)
from nota n
join resposta r on n.resposta_id = r.id
join aluno a on r.aluno_id = a.id
join matricula m on m.aluno_id = a.id
join curso c on m.curso_id = c.id
group by c.nome,a.nome;
Resultado:
+-----------------+---------------------------------+-------------+
| nome | nome | avg(n.nota) |
+-----------------+---------------------------------+-------------+
| Frederico José | Desenvolvimento web com VRaptor | 6.2500 |
| Renata Alonso | PHP e MySql | 4.8571 |
| Alberto Santos | Scrum e métodos ágeis | 5.7778 |
| Frederico José | SQL e banco de dados | 6.2500 |
| João da Silva | SQL e banco de dados | 6.2857 |
+-----------------+---------------------------------+-------------+
Esse e dado como resposta certa do exercício:
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
Resultado:
+-----------------+-------------------------+-------------+
| nome | nome | avg(n.nota) |
+-----------------+-------------------------+-------------+
| Renata Alonso | PHP e MySql | 4.8571 |
| Alberto Santos | Scrum e métodos ágeis | 5.7778 |
| Frederico José | SQL e banco de dados | 6.2500 |
| João da Silva | SQL e banco de dados | 6.2857 |
+-----------------+-------------------------+-------------+
4 rows in set (0.00 sec)
Só queria entender porque o primeiro código devolve um campo a mais.
Obrigado.