O comando GROUP BY é utilizado para agrupar registros que possuem valores iguais em uma ou mais colunas.
Ele é geralmente utilizado junto com funções de agregação como COUNT(), SUM(), AVG(), MAX() e MIN().
SELECT coluna,
FUNÇÃO_AGREGACAO(coluna)
FROM tabela
GROUP BY coluna;
VENDAS
+----+------------+--------+
| ID | Categoria | Valor |
+----+------------+--------+
| 1 | Eletrônico | 500 |
| 2 | Móveis | 700 |
| 3 | Eletrônico | 300 |
| 4 | Móveis | 200 |
+----+------------+--------+
SELECT
categoria,
SUM(valor)
FROM vendas
GROUP BY categoria;
Resultado:
Eletrônico = 800
Móveis = 900
SELECT
cidade,
COUNT(*) AS quantidade
FROM clientes
GROUP BY cidade;
Mostra a quantidade de clientes por cidade.
SELECT
departamento,
AVG(salario)
FROM funcionarios
GROUP BY departamento;
Calcula a média salarial de cada departamento.
SELECT
cidade,
sexo,
COUNT(*)
FROM clientes
GROUP BY cidade, sexo;
Permite criar agrupamentos mais detalhados.
SELECT
categoria,
SUM(valor)
FROM vendas
WHERE ano = 2026
GROUP BY categoria;
Primeiro aplica o filtro e depois realiza o agrupamento.
| Ordem | Comando |
|---|---|
| 1 | FROM |
| 2 | WHERE |
| 3 | GROUP BY |
| 4 | HAVING |
| 5 | SELECT |
| 6 | ORDER BY |
| Sistema | Utilização |
|---|---|
| E-commerce | Vendas por categoria |
| RH | Funcionários por setor |
| Financeiro | Despesas por período |
| CRM | Clientes por região |
| Erro | Problema |
|---|---|
| Usar coluna sem agrupamento | Erro na consulta |
| Confundir WHERE e HAVING | Filtro aplicado errado |
| Esquecer função agregadora | Resultado inesperado |
| Agrupar coluna incorreta | Relatório errado |