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

Duvida no uso da função AVG e group by

Minha query não esta retornando nenhum dado... estou na aula de Group by.

existe algo errado na query? ou sera que o banco realmente não possui o dado, como consigo avaliar?

select 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 GROUP BY c.nome;

1 resposta
solução!

Lucas,

Para saber o que esta acontecendo você pode seguir da seguinte forma.

Remover o "group by" e executar o código, assim é possível avaliar o resultado.

select c.nome, 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 

Caso não retorne nada então vamos remover um join.

select  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 

Caso não retorne nada novamente remova novamente outro join, desse forma você consegue isolar em qual tabela não possui o dado e pode fazer o insert.

Eu costumava usar este método para resolver problemas de join com tabelas de referencia em produção.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software