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.
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:
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:
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:
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:
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:
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:
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.
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.