Все столбцы в предложении SELECT, у которых нет агрегата, должны быть в GROUP BY
Хорошо:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3
Также хорошо:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6
Нет других столбцов = не требуется GROUP BY
SELECT MAX(col4)
...
Не будет работать:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2
Бессмысленно:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)
Наличие агрегата (MAX и т. Д.) С другими столбцами без GROUP BY не имеет смысла, поскольку запрос становится неоднозначным.