Todas las columnas en la cláusula SELECT que no tienen un agregado deben estar en GROUP BY
Bien:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3
También bueno:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6
No hay otras columnas =no se necesita GROUP BY
SELECT MAX(col4)
...
No funcionará:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2
Sin sentido:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)
Tener un agregado (MAX, etc.) con otras columnas sin GROUP BY no tiene sentido porque la consulta se vuelve ambigua.