Postado em em 1 de novembro de 2024

Aprenda a utilizar o Group By com Join no SQL e tenha uma poderosa combinação para auxiliá-lo em análises e trabalhos com bancos de dados!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Group By com Join no SQL – Uma Combinação Poderosa

O SQL oferece diversas funcionalidades e ferramentas poderosas para nos auxiliar a gerenciar e consultar bancos de dados.

Entre elas, dois comandos essenciais se destacam: Group By e Join. Esses comandos permitem realizar agregações complexas e combinar dados de várias tabelas de forma eficiente e prática.

Nesta aula, vou mostrar o poder de combinar o Group By com o Join no SQL, para gerar consultas dinâmicas que tornam suas análises e trabalhos com bancos de dados ainda mais completos e robustos!

Primeiro, veremos o funcionamento de cada uma dessas cláusulas individualmente. Depois, você aprenderá o passo a passo para combiná-las e usá-las em suas consultas, realizando análises avançadas em seus bancos de dados.

O que é o Group By no SQL?

O Group By no SQL é utilizado principalmente para agrupar dados com base em uma ou mais colunas, ajudando a criar resumos e análises ao reunir linhas que compartilham valores comuns em colunas específicas.

Com ele, podemos realizar análises mais detalhadas, agrupando informações de uma tabela com base em critérios específicos.

Vamos pegar uma tabela de produtos como exemplo.

tabela de produtos

Nessa tabela, encontramos diversas informações sobre uma variedade de produtos, incluindo uma coluna de marcas (Marca_Produto).

Suponha que desejamos descobrir quantos produtos existem para cada marca. Podemos realizar essa tarefa utilizando o Group By da seguinte forma:. 

SELECT
    Marca_Produto,
    COUNT(*)
FROM produtos
GROUP BY Marca_Produto;

Este processo é bastante simples. Utilizamos o comando Select, especificamos a coluna que desejamos agrupar, seguida da operação de contagem desejada. Indicamos a tabela de origem e, por fim, definimos o agrupamento (Group By) com base na tabela que queremos agrupar.

Ao executar essa consulta, obtemos uma tabela resumida que apresenta o total de produtos por marca.

Group By

O Group By possibilita a realização de diversos tipos de agrupamentos em tabelas, tornando-se assim uma ferramenta muito interessante para análise de dados.

O que é o Join no SQL?

O Join no SQL permite combinar linhas de duas ou mais tabelas com base em uma coluna comum entre elas.

Bancos de dados relacionais são projetados para armazenar informações em tabelas separadas, que podem ser conectadas por meio de chaves.

O comando Join torna possível extrair dados dessas tabelas relacionadas em uma única consulta, sendo fundamental para estabelecer relacionamentos e permitir a filtragem de dados entre tabelas. Por meio do Join, é possível unir duas tabelas, gerando uma terceira tabela com o resultado dessa relação.

Para ilustrar, considere a tabela de pedidos abaixo:

tabela de pedidos

Observa-se que esta tabela contém diversas colunas com IDs de lojas, produtos e clientes.

Essa configuração é conhecida como uma tabela dimensão, composta principalmente por IDs. Através desses IDs, é possível relacioná-la com outras tabelas do banco de dados para obter as informações desejadas.

Por exemplo, utilizando os IDs presentes na coluna ID_Loja, podemos relacioná-los com os IDs das lojas na tabela de Lojas, recuperando assim as informações associadas. O mesmo processo pode ser feito para o ID_Produto e o ID_Cliente.

Em situações como essas, utilizamos o JOIN para exibir essas relações, sendo o INNER JOIN o foco neste caso. Existem vários tipos de Joins, mas aqui abordaremos o INNER JOIN.

Por exemplo, selecionar as informações da tabela de pedidos, adicionando informações da tabela de produtos. Isso pode ser feito da seguinte forma:

SELECT * FROM pedidos
INNER JOIN produtos
ON pedidos.ID_Produto = produtos.ID_Produto;

Nesse código, selecionamos a tabela de origem das informações, especificamos o tipo de JOIN que utilizaremos (INNER JOIN) e a tabela com a qual queremos realizar o JOIN. Por fim, determinamos qual coluna da tabela de pedidos está se relacionando com qual coluna da tabela de produtos.

Ao executar esse código, obtemos uma tabela com diversas informações, incluindo todas as informações da tabela de pedidos e todas as informações da tabela de produtos.

Join

Inclusive temos duas colunas nomeadas ID_Produto e a partir da segunda coluna, são as informações referentes a tabela de produtos.

Entretanto, perceba que a tabela resultante é extensa e pouco otimizada, com diversas informações repetidas. É por isso que em bancos de dados reais, as tabelas são divididas para melhorar a otimização e acessamos as informações por meio de relacionamentos.

Não é necessário utilizar o INNER JOIN selecionando toda a tabela, como fizemos anteriormente. Podemos, em vez de usar um SELECT *, executar o comando da seguinte maneira:

SELECT
    pedidos.Data_Venda,
    pedidos.Receita_Venda,
    produtos.Marca_Produto
FROM pedidos
INNER JOIN produtos
ON pedidos.ID_Produto = produtos.ID_Produto;

Assim, estamos especificando quais colunas desejamos unir e visualizar na nossa tabela, indicando no SELECT o nome da tabela seguido do nome da coluna (nome_tabela.Nome_Coluna). Ao executar esse código, obtemos uma tabela mais concisa.

INNER JOIN

Combinação do GROUP BY com JOIN no SQL

Agora que revisamos como funcionam o Group By e o Join no SQL, vamos explorar como utilizar a combinação dessas duas cláusulas que é extremamente poderosa, pois permite resumir dados de várias tabelas de forma prática e inteligente.

Ao analisar a última tabela gerada com o Join, notamos que ela consiste na tabela de pedidos com todas as linhas presentes, exibindo apenas três colunas: duas provenientes dela mesma e uma da junção com a tabela de produtos.

A partir dessa tabela, podemos realizar análises mais complexas, como calcular o total de receita por marca. Em vez de ter a receita para cada venda, podemos usar o Group By e agrupar essa tabela gerada com o Join com base nas marcas dos produtos.

SELECT
    produtos.Marca_Produto,
    SUM(pedidos.Receita_Venda)
FROM pedidos
INNER JOIN produtos
ON pedidos.ID_Produto = produtos.ID_Produto
GROUP BY produtos.Marca_Produto;

Ao executar essa combinação do Group By com Join no SQL, obteremos a tabela abaixo, que apresenta as marcas dos produtos e a soma da receita de venda para cada uma delas.

Group By com Join no SQL

Podemos otimizar ainda mais o código atribuindo aliases (apelidos) aos nomes das tabelas para evitar repetições. Podemos fazer isso adicionando o alias na frente do nome da tabela e substituindo-o nos lugares onde o nome da tabela era utilizado anteriormente.

O mesmo código poderia ser escrito assim:

SELECT
    pr.Marca_Produto,
    SUM(pe.Receita_Venda)
FROM pedidos pe
INNER JOIN produtos pr
ON pe.ID_Produto = pr.ID_Produto
GROUP BY pr.Marca_Produto;

Aqui, pe é o alias para a tabela pedidos e pr é o alias para a tabela produtos. O resultado obtido será equivalente à tabela gerada anteriormente.

Group By com Join no SQL

Casos de Uso de Group By e Join

Aqui estão alguns cenários práticos onde a combinação de Group By e Join pode ser útil:

  • Análise de Vendas: analisar o total de vendas por região, loja ou categoria de produto.
  • Insights de Clientes: entender o número de compras realizadas por diferentes segmentos de clientes (como grupos etários ou localização).
  • Gestão de Estoques: agrupar produtos por fornecedor para monitorar necessidades de compra e níveis de estoque.

Conclusão – Group By com Join no SQL – Uma Combinação Poderosa

A combinação de Group By com Join é uma habilidade essencial para quem trabalha com bancos de dados SQL. Ela permite não só recuperar dados, mas também agregá-los e analisá-los de maneiras significativas.

Na aula de hoje, você aprendeu o passo a passo para utilizar essa poderosa combinação e aplicá-la em suas análises e consultas aos bancos de dados.

Ao dominar essa técnica, suas análises e atividades relacionadas a bancos de dados se tornarão não apenas mais práticas, mas também mais avançadas e eficientes.

Se você deseja aprimorar ainda mais suas habilidades com SQL e se tornar uma referência em sua empresa, conheça nosso Curso Completo SQL Impressionador!

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Posts mais recentes de SQL

Posts mais recentes da Hashtag Treinamentos