SQL GROUP BY: Como agrupar valores idênticos

Se você deseja agrupar linhas com valores idênticos, a instrução SQL GROUP BY é a escolha certa. Geralmente, ela é utilizada em combinação com funções agregadas.

O que é SQL GROUP BY?

Em SQL (Structured Query Language), GROUP BY é uma instrução usada para agrupar linhas com valores idênticos em um grupo. Ela é usada com o comando SQL SELECT e segue a cláusula WHERE. Frequentemente, SQL GROUP BY é combinado com funções como SQL AVG(), SQL COUNT(), MAX(), MIN() ou SUM(). Isso permite que você realize cálculos e exiba os resultados em sua tabela. A instrução é especialmente útil quando é necessário determinar uma ordem ou relacionar valores entre si.

vServer (VPS) da IONOS

Hospedagem VPS poderosa e de baixo custo para rodar suas aplicações sob medida, com assistente pessoal e suporte 24 horas.

  • Armazenamento 100% SSD
  • Pronto em 55 segundos
  • Certificado SSL

Sintaxe e funcionamento de SQL GROUP BY

A sintaxe básica do SQL GROUP BY é a seguinte:

SELECT coluna1, coluna2, coluna3,FROM nome_da_tabela
GROUP BY coluna1, coluna2, coluna3,;
sql

No entanto, é mais comum o uso da instrução com uma cláusula WHERE, que permite definir condições específicas. Essa versão se parece com isso:

SELECT coluna1, coluna2, coluna3,FROM nome_da_tabela
WHERE condição
GROUP BY coluna1, coluna2, coluna3,ORDER BY coluna1, coluna2, coluna3,;
sql

Combinar SQL GROUP BY com COUNT()

Para ilustrar como usar o SQL GROUP BY, vamos criar uma tabela simples chamada “Lista de Clientes”. Ela contém colunas para o número do cliente, o nome, a localização e os itens comprados:

Número do Cliente Nome Localização Itens
1427 Schmidt Goiânia 13
1377 Sampaio Navegantes 9
1212 Pedroso Navegantes 15
1431 Müller Maceió 22
1118 Becker Goiânia 10

Agora podemos usar o SQL GROUP BY em combinação com a função COUNT() para listar quantos clientes vêm de cada cidade. Aqui está o código correspondente:

SELECT Localização, COUNT(*) AS Quantidade
FROM Lista de Clientes
GROUP BY Localização;
sql

Como resultado, obtemos esta nova tabela:

Localização Quantidade
Maceió 1
Goiânia 2
Navegantes 2

Aqui, utilizamos os Aliases em SQL para exibir os resultados como “Quantidade”.

Combinar SQL GROUP BY com SUM()

No próximo exemplo, usamos SQL GROUP BY em combinação com SUM() para calcular e mostrar quantos itens foram pedidos em Navegantes. Para isso, usamos o seguinte código:

SELECT Localização, SUM(Itens) AS Total
FROM Lista de Clientes
WHERE Localização = 'Navegantes'
GROUP BY Localização;
sql

Como resultado, obtemos:

Localização Total
Navegantes 24

Combinar SQL GROUP BY com ORDER BY

Também é possível combinar com ORDER BY. Neste caso, ordenamos a tabela pela maior quantidade de itens comprados por cliente em cada cidade, começando pela localização onde o maior número de itens foi adquirido por um cliente. O código correspondente, onde combinamos SQL GROUP BY com as funções MAX() e ORDER BY, é o seguinte:

SELECT Localização, MAX(Itens) AS Maior
FROM Lista de Clientes
GROUP BY Localização ORDER BY Maior DESC;
sql

E o resultado correspondente:

Localização Maior
Maceió 22
Navegantes 15
Goiânia 13

Combinar SQL GROUP BY com HAVING

Você também pode combinar SQL GROUP BY com SQL HAVING. No exemplo a seguir, removemos da lista os clientes cuja numeração seja inferior a 1300. As demais pessoas são ordenadas de acordo com a quantidade de itens comprados em ordem crescente. O código fica assim:

A seguir, temos o código SQL:

SELECT Localização, Número do Cliente, MIN(Itens) AS Menor
FROM Lista de Clientes
GROUP BY Localização, Número do Cliente HAVING Número do Cliente > 1300;
sql

Isso resulta na seguinte tabela como nova saída:

Localização Número do Cliente Menor
Navegantes 1377 9
Goiânia 1427 13
Maceió 1431 22

Alternativas ao SQL GROUP BY

Uma alternativa popular ao SQL GROUP BY é a instrução PARTITION BY. A diferença é que, com essa instrução, todos os valores originais também são mantidos e exibidos. Além disso, muitas funções agregadas também funcionam sem o uso da cláusula SQL GROUP BY.

Dica

Um banco de dados exatamente como você deseja: Com o SQL Server Hosting da IONOS, você tem a opção de escolher entre MSSQL, MySQL ou MariaDB, e em todos os casos, você se beneficia de um desempenho excepcional, fortes recursos de segurança e consultoria personalizada.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top