1) A cláusula GROUP BY agrupa os dados retornando resultados acumulados por funções como SUM, COUNT, MAX, MIN e AVG. Isso permite obter valores totais agrupados, como a comissão total de um vendedor.
2) As funções de agrupamento incluem SUM para soma, COUNT para contagem, AVG para média, MAX para valor máximo e MIN para valor mínimo. LAST também é usado no MySQL.
3) A cláusula HAVING filtra os resultados do agrupamento, enquanto WHERE não pode considerar funções