Wszystkie kolumny w klauzuli SELECT, które nie mają agregacji, muszą znajdować się w grupie GROUP BY
Dobrze:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3
Również dobrze:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, col5, col6
Brak innych kolumn =nie jest potrzebna funkcja GROUP BY
SELECT MAX(col4)
...
Nie działa:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2
Bez sensu:
SELECT col1, col2, col3, MAX(col4)
...
GROUP BY col1, col2, col3, MAX(col4)
Posiadanie agregacji (MAX itp.) z innymi kolumnami bez funkcji GROUP BY nie ma sensu, ponieważ zapytanie staje się niejednoznaczne.