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

Erro 1055 Group by

Efetuando a resolução do exercício do módulo 5(GROUP BY com WHERE) do curso de MySql - sql-complexas me deparei com o seguinte erro no terminal:

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sql2.a.nome' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

O select que utilizei foi o seguinte:

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 matricula m on m.curso_id=c.id 
join aluno a on a.id=m.aluno_id 

where a.nome like '%Silva%' or a.nome like '%Santos%' 

group by c.nome;

Este select, sem a opção avg em n.nota e group by c.nome me retornar valor normalmente, porém após inserir a opção de média de nota e o agrupamento me retorna o erro mencionado.

Poderiam me auxiliar a encontrar o erro deste select?

Att

2 respostas
solução!

Oi Ricardo,

Você precisa usar todos os campos que estão no seu select que não a função de agregação no group by para que ele possa funcionar, ou seja, os campos a.nome e c.nome precisam estar no group by.

Abraço!

Obrigado pelo retorno Joviane.