Olá,
Realizei o curso Oracle II e percebi uma divergência entre a minha solução e a do instrutor.
No módulo 2, mais especificamente no exercício de group by, a questão era:
Exiba a média das notas por curso.
A solução dada foi a seguinte:
select c.nome, avg(n.nota) as media 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
group by c.nome;
Esta query nos dá o seguinte resultado:
NOME |MEDIA |
-------------------------------|----------------------------------------|
Scrum e metodos ageis |5.77777777777777777777777777777777777778|
C# e orientacao a objetos |4.85714285714285714285714285714285714286|
Desenvolvimento web com VRaptor| 8|
SQL e banco de dados | 6.1|
Entretanto, com a seguinte query temos a média do curso Desenvolvimento mobile com Android:
select c.nome, avg(n.nota) as media from aluno a
join matricula m on m.aluno_id = a.id
join curso c on m.curso_id = c.id
join resposta r on r.aluno_id = a.id
join nota n on n.resposta_id = r.id
group by c.nome;
Nos trazendo o seguinte resultado:
NOME |MEDIA |
----------------------------------|----------------------------------------|
C# e orientacao a objetos |5.74074074074074074074074074074074074074|
Scrum e metodos ageis |5.77777777777777777777777777777777777778|
Desenvolvimento web com VRaptor | 6.25|
Desenvolvimento mobile com Android|4.85714285714285714285714285714285714286|
SQL e banco de dados |6.27272727272727272727272727272727272727|
Gostaria de uma ajuda para entender onde estou errando.
Muito obrigado.