DBAtlas · Atlas de operações de banco de dados

1055: Expression not in GROUP BY (only_full_group_by) (expressão que não está no GROUP BY)

MySQL

O que significa?

Uma coluna que não está no GROUP BY nem envolvida por uma função de agregação foi usada na lista do SELECT ou em HAVING/ORDER BY. Como o modo SQL ONLY_FULL_GROUP_BY está habilitado, o MySQL rejeita essa expressão não determinística.

Por que acontece?

A consulta seleciona diretamente uma coluna além das colunas agrupadas, mas essa coluna pode não ter um único valor por grupo. ONLY_FULL_GROUP_BY vem habilitado por padrão no MySQL 5.7+; consultas que dependem do antigo comportamento permissivo do GROUP BY geram este erro.

Como resolver

Adicione a coluna à lista do GROUP BY ou envolva-a em uma função de agregação (MAX(), MIN(), ANY_VALUE()). Se você sabe que o valor é realmente único dentro do grupo, ANY_VALUE() suprime a ambiguidade de forma deliberada. Desabilitar o modo (remover ONLY_FULL_GROUP_BY do sql_mode) em vez de corrigir a consulta traz de volta o risco de resultados errados; evite isso.

Abrir no DBAtlas →

Mais entradas deste banco