Todas as colunas da cláusula SELECT que não possuem agregação precisam estar no GROUP BY
Bom:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3
Também é bom:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6
Nenhuma outra coluna =não é necessário GROUP BY
SELECT MAX(col4)
...
Não funcionará:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2
Sem sentido:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)
Ter um agregado (MAX etc) com outras colunas sem um GROUP BY não faz sentido porque a consulta se torna ambígua.