MySQL – GROUP BY – Agrupamento de Registros
Cláusula GROUP BY no MySQL
Usamos a cláusula GROUP BY para agrupar registros em subgrupos baseados em colunas ou valores retornados por uma expressão.
Com o GROUP BY podemos agrupar os valores de uma coluna e também realizar cálculos sobre esses valores. Desta forma, ao realizarmos ma consulta, os valores encontrados nas linhas são agrupados e então uma função de agregação pode ser aplicada sobre esses grupos.
Sintaxe básica:
SELECT colunas, função_agregação()
FROM tabela
WHERE filtro
GROUP BY coluna
Criar uma tabela para testarmos o GROUP BY:
CREATE TABLE Vendas ( ID Smallint Primary Key, Nome_Vendedor Varchar(20), Quantidade Int, Produto Varchar(20), Cidade Varchar(20) );
Inserir registros na tabela criada para teste de GROUP BY:
INSERT INTO Vendas (ID, Nome_Vendedor, Quantidade, Produto, Cidade) VALUES (10,'Jorge',1400,'Mouse','São Paulo'), (12,'Tatiana',1220,'Teclado','São Paulo'), (14,'Ana',1700,'Teclado','Rio de Janeiro'), (15,'Rita',2120,'Webcam','Recife'), (18,'Marcos',980,'Mouse','São Paulo'), (19,'Carla',1120,'Webcam','Recife'), (22,'Roberto',3145,'Mouse','São Paulo');
Usando o GROUP BY:
1 – Consulta usando agregação para obter o total de vendas de Mouses (sem o GROUP BY):
SELECT SUM(Quantidade) As TotalMouses FROM Vendas WHERE Produto = 'Mouse';
2 – Consulta totalizando as vendas de todos os produtos por cidade:
SELECT Cidade, SUM(Quantidade) As Total FROM Vendas GROUP BY Cidade;
3 – Consulta contando o número de registros de vendas (quantidade de vendas) por cidade:
SELECT Cidade, COUNT(*) As Total FROM Vendas GROUP BY Cidade;
4 – Consulta com o total de vendas realizadas por cada vendedor:
SELECT Nome_Vendedor, SUM(Quantidade) FROM Vendas GROUP BY Nome_Vendedor;
Também é possível utilizar a cláusula GROUP BY sem o emprego de funções de agregação. Neste caso, a consulta simplesmente retornará valores sem que haja repetição de dados na coluna indicada pela cláusula. Isso é equivalente a aplicar a cláusula DISTINCT em uma consulta usando apenas o SELECT simples.
Muitas vezes é necessário filtrar dados ons grupos retornados pelo GROUP BY. Para isso, empregamos a cláusula HAVING.
Assista agora a um vídeo sobre o uso da cláusula GROUP BY em consultas realizadas no MySQL:
Você esta de parabéns por disponibilizar este material este excelente material.
Muito obrigado
Eu é que agradeço Messias!!!!!
Ola Fabio,
Quero agradecer, suas video aulas, sao otimas, estou aprendendo muito com elas.
Muito obrigada pelo execelente trabalho.
como passar estes comando num projeto em html e php?
Boa noite,
Seus artigos são excelentes.
Preciso implementar no PHP uma list de registros de clientes por setores e local, que vem de duas tabelas relacionadas.
Você tem algum artigo que possa me dar uma ideia de como implementar.
Ficorel muito agradecido
Executando direto no sql funciona, podia mostrar como imprimir da mesma forma que aparece no sql na página em php…
Ola Fabío tudo bemw
estou tentando implementar um sql no mysql phpmiadmin porem ainda nãoconsegui você poderi me ajudar?Meu email e jaconiasmendes87@gmail.com
whatssap:11947911699