Hola!!
En realidad el problema no es exactamente con el GROUP BY, sino que estás usando funciones de agregado y al vez estás extrayendo campos únicos en tu consulta.
Lo que pasa es que al usar funciones de agregado implicitamente estás agrupando los valores de ese campo y regresando un valor agrupado de todos los que ha en el campo, y al seleccionar campos únicos también en la consulta entonces se produce un error si no tenes esos campos dentro de una clausula GROUP BY.
En resumen todos los campos que seleccionés n tu consulta y que no estén contenidos en la función de agregado deberán ir dentro de la cláusula GROUP BY, así.
SELECT campo1, campo2, campoN , FUNC1(campo1)...
WHERE condicion
GROUP campo1, campo2, campoN
Espero te sirva.