Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Sub-queries Exercício 1

Olá pessoal, fiquei com uma pequena dúvida neste exercício.

Fiz a seguinte consulta:

select a.nome, avg(n1.nota), 
avg(n1.nota) - (select avg(n2.nota) from nota n2)
from nota n1
join resposta r on r.id = n1.resposta_id
join aluno a on a.id = r.aluno_id
group by a.nome

Com o seguinte resultado:

+-----------------+--------------+---------------------------------------------------+
| nome            | avg(n1.nota) | avg(n1.nota) - (select avg(n2.nota) from nota n2) |
+-----------------+--------------+---------------------------------------------------+
| Alberto Santos  |       5.7778 |                                            0.0370 |
| Frederico José  |       6.2500 |                                            0.5093 |
| João da Silva   |       6.2857 |                                            0.5450 |
| Renata Alonso   |       4.8571 |                                           -0.8836 |
+-----------------+--------------+---------------------------------------------------+

Então na resposta correta há:

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

E o resultado:

+-----------------+--------+-----------+
| nome            | media  | diferenca |
+-----------------+--------+-----------+
| Alberto Santos  | 5.7778 |    0.0370 |
| Frederico José  | 6.2500 |    0.5093 |
| João da Silva   | 6.2857 |    0.5450 |
| Renata Alonso   | 4.8571 |   -0.8836 |
+-----------------+--------+-----------+

Notem que os resultados são os mesmo e que em minha consulta não contempla as tabelas de exercício e seção, pois conforme o enunciado ele pede apenas as médias dos alunos independente do curso.

Gostaria de entender porque na resposta correta descreve estas tabelas sendo que eu não as uso para o resultado final (Entendo que sim, já que a resultado é igual)?

2 respostas
solução!

Você está certo sim, Rafael! :)

Que bom! ;)